在我的理解中,戰略模式被用來使行爲可以互換。這涉及到策略的責任是在接口中定義的,客戶可以將其委託給接口。例如。假設可以通過不同的方式獲得值,那麼接口將有一個方法「getValue()」。逆向控制流程的策略模式是什麼?
我的問題涉及其中控制流是相反的情況。例如,如果具體策略在客戶端啓動請求「onValueChanged()」(假設它具有對客戶端或回調接口的引用)。
這仍然被認爲是一種戰略模式?
更新 - 增加了下面的源代碼示例:
interface DataSupplierCb
{
void onValueChanged(int a);
}
interface DataSupplier
{
void check();
}
// NOTE 1: Data supplier knows how the get the value
class ConcreteDataSupplier : public DataSupplier
{
void check()
{
myDataSupplierCb.onValueChanged(47);
}
}
class Client : public DataSupplierCb
{
void onValueChanged(int a)
{
// NOTE 2: Client knows what to do with the value
}
void changeDataSupplier(int i)
{
if (i == 1)
{
myCurrentDataSupplier = new ConcreteDataSupplier(this);
}
}
}
對我來說,它看起來像'observer' – sll 2012-02-06 16:58:39
如果你的代碼放了一點點的代碼作爲例子,那麼它可能會有所幫助。甚至不必是真實的代碼,僞代碼就足夠了。 – tcarvin 2012-02-07 13:09:47
感謝您的回覆。我試圖製作一個說明我的案例的源代碼示例。 – Vandhunden 2012-02-07 13:54:16