0
我有一個狀態驅動的類,它根據發生的情況改變狀態。這個班級有一個州屬性,這個州屬性被許多地方用各種方法撒在代碼中。將方法名稱傳遞給狀態更改對象的選項
因此其不容易/顯而易見的臨場狀態變化的邏輯是什麼,所以我想在一個專用的方法集中的狀態變化,沿着下面的僞代碼的
- (void) updateState: (Param) action
{
switch (self.currentState)
case: EStateA:
if (action == connectionSuccesful)
self.currentState = EStateB;
else
self.currentState = EStateC;
break;
}
- (void) delegateCallbackConnectionSuccess
{
[self updateState: Param];
}
所以東西線updateState方法需要知道爲了改變狀態而發生了什麼動作,一個動作被封裝爲一個方法,因此updateState方法需要知道調用它的方法。
所以我的問題是如何最好地實現這個,Param應該是什麼類型? 有什麼選擇? SEL,@選擇器,NSInvocation,其他的東西?
TIA
(實現一個完全成熟的狀態模式似乎矯枉過正,除非其在iOS的易)
這樣,每一種方法需要知道隨之而來的是什麼狀態,而集中這意味着只有本身需要知道如何進步,這是擺在首位進行集中點的狀態的方法 - 去耦如何認識從每個單獨的方法轉變爲只有一種方法,因此它易於閱讀和維護。 – Gruntcakes 2012-04-24 22:54:16