允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。
狀態模式的功能就是分離狀態的行為,通過維護狀態的變化,來呼叫不同狀態對應的不同功能。
狀態決定行為。
public inte***ce votestate
public class normalvotestate implements votestate
}public class repeatvotestate implements votestate
}public class spitevotestate implements votestate }}
public class blackvotestate implements votestate
}public class votemanager
public void vote(string user, string voteitem)
oldvotecount += 1;
mapvotecount.put(user, oldvotecount);
if(oldvotecount == 1) else if(oldvotecount > 1 && oldvotecount < 5) else if(oldvotecount >= 5 && oldvotecount < 8) else if(oldvotecount >= 8)
state.vote(user, voteitem,this);}}
客戶端**:
votemanager vm = new votemanager();
for(int i = 0;i < 8;i++)
狀態 State 模式
物件狀態影響物件行為 物件擁有不同的狀態,往往會行使不同的行為.1 動機 在軟體構建過程中,某些物件的狀態如果改變,其行為也會隨之而發生變化。比如文件處於唯讀狀態,其支援的行為和讀寫狀態支援的行為就可能完全不同。如何在執行時根據物件的狀態來透明地更改物件的行為?而不會為物件操作和狀態轉化之前引入緊耦...
狀態模式 State
個人理解 核心是context維護乙個當前狀態,並在invoke狀態方法時,將context維護的當前狀態更新至下一狀態 uml類圖 實現 using system namespace decoratormode public class agecontext public void printag...
state 狀態模式
include include using namespace std 1 將 state宣告為 context的友元類 friend class 其作用是讓 state模式訪問 context 的 protected介面 changesate 2 state 及其子類中的操作都將 context ...