設計模式之行為模式 狀態模式

2021-07-24 00:19:23 字數 1124 閱讀 3669

當乙個物件內部具允許有多個狀態改變時,我們將不同的狀態提取出來作為乙個單獨的類來描述乙個狀態,這樣可以很容易的擴充套件物件,使其具有更多的狀態表達,而不會影響到物件本身。

乙個狀態模式的結構圖:

state作為乙個抽象介面類,向外界提供乙個物件,而派生類繼承自state實現介面作為不同的狀態表示。

context是乙個狀態調配類,它根據客戶端傳遞過來的指令判斷物件需要執行那種狀態,而指定建立那個子類的例項介面。從而實現狀態的改變。

1、在實際生活中我們可以我們的工作看成乙個狀態模式,在不同的時間段的工作的狀態不同。

2、狀態模式的**實現

using system;

/*zhong de zhuang tai jie kou

*/abstract class state

class concretestatea :state

else

}}class concretestateb :state

else

}}class concretestatec :state

}//zhuang tai tiao pei

class context

/*ji lu shi jian de zhuan huan*/

private

double hourr;

public

double hourr

set}

//geng gai dang qian zhuang tai

public

void

request(state se)

public

void

writeprogran()

}class winmain

}

執行結果:

Java設計模式之行為型模式(狀態模式)

狀態模式允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。uml圖 已經上了注釋,很簡單,大家領會一下狀態模式的思想。author hanlin wang public class statemode 定義狀態類 class state public string getval...

java設計模式之行為型模式 策略模式

策略模式,指物件有某個行為,但是在不同的場景中,該行為有不同的實現演算法。比如每個人都要 交個人所得稅 但是 在美國交個人所得稅 和 在中國交個人所得稅 就有不同的算稅方法。許多相關類僅僅是行為不同。需要使用乙個演算法的不同實現。演算法使用了客戶不應該知道的資料。策略模式可以避免暴露複雜的 與演算法...

Java設計模式之行為型模式(命令模式)

命令模式由三部分構成 invoker 命令觸發器 executor 命令處理器 responder 命令響應器 命令模式將客戶端 也就是這裡的invoker命令觸發器 與服務端 responder命令響應器 兩者解耦。客戶端只需要關注自己傳送哪一條命令,而無需關注服務端的實現細節 服務端只需關注命令...