一 狀態模式與例項

2021-07-22 16:17:44 字數 1431 閱讀 2203

public

class tvcontroller

state=power_on;

}public

void

turnoff()

state=power_off;

}public

void

changechannel()else

}public

void

changesound()

else}}

行為/狀態

狀態一狀態二

行為一狀態一的行為一

狀態二的行為一

行為二狀態一的行為二

狀態二的行為二

1.申明狀態介面,一共有兩個方法,調頻道和調音量。

inte***ce state
2.根據具體的實現方法介面

public

class

statepoweron

implements

state

@override

public

void

changesound()

}public

class

statepoweroff

implements

state

@override

public

void

changesound()

}

3.申明狀態介面

inte***ce power
4.建立主要使用類context

public

class

tvcontroller

implements

power,state

@override

public

void

poweroff()

@override

public

void

changechannel()

@override

public

void

changesound()

}

5.使用

tvcontroller tc=new tvcontroller();

tc.poweron();

tc.changechannel();

tc.changesound();

tc.poweroff();

tc.changesound();

(十一)狀態模式

在業務中,常常有那種狀態巨多的東西,比如乙個立項,可能有新建 已提交 已審批等多種狀態 乙個活動可能有新建 已提交 審核通過 執行中 結束等多種狀態 因此,這個設計模式,指的是面向乙個立項 乙個訂單這個 物件 的邏輯 public inte ce state public class newstat...

設計模式 十一 狀態模式

狀態模式 state 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況,把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯化。狀態抽象類,定義乙個介面以及封裝與context 的乙個特定...

zookeeper學習一 狀態

keeperstate中的幾種狀態 disconnected 0 客戶端處於斷開連線狀態 未連線 syncconnected 3 客戶端處於連線狀態 已連線 authfailed 4 驗證失敗狀態 connectedreadonly 5 客戶端連線到唯讀伺服器,讀 寫客戶端不允許連線到r o伺服器 ...