狀態模式State根據狀態來分離和選擇行為

2021-09-01 22:44:01 字數 822 閱讀 6887

允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。

狀態模式的功能就是分離狀態的行為,通過維護狀態的變化,來呼叫不同狀態對應的不同功能。

狀態決定行為。

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 ...