設計模式之state模式

2021-07-11 18:30:00 字數 814 閱讀 6825

狀態模式(state pattern)

允許乙個物件在其內部狀態改變時改變它的行為。

適用場景:

一、乙個物件的行為取決於他的狀態,並且它必須在執行時根據狀態改變它

的行為;

二、乙個操作中含有龐大的多分支條件語句,並且這些分支依賴於該物件的

狀態。優缺點:

狀態模式的主要優點在於封裝了轉換規則,其缺點在於使用狀態模式會增加系統類和物件的個數,且狀態模式的結構與實現都較為複雜.

原始碼如下:

//1、定義乙個抽象狀態類

public inte***ce state

//2、乙個state型別的物件例項 維護狀態的變化

public class context  

// 使用者感興趣的介面方法

public void request(final string sampleparameter)  

}  

//3、狀態變化類

public class statea implements state

} //4、狀態變化類

public class stateb implements state  

}   

//客戶端

public class statetest  

}  s t a t e模式提供了乙個更好的方法來組織與特定狀態相關的**。決定狀態轉移的邏輯不在單塊的i f或s w i t c h語句中, 而是分布在s t a t e子類之間。將每乙個狀態轉換和動作封裝到乙個類中,就把著眼點從執行狀態提高到整個物件的狀態。這將使**結構化並使其意圖更加清晰。

設計模式之State模式

state模式類似於switch的多路分鐘功能 狀態模式的ulm圖 狀態模式用於改變目標物件的行為方式,隨著狀態變化目標程式從乙個轉到另乙個目標程式。package state public class creature private class forg implements state pri...

SIP之設計模式 State設計模式

學過設計模式和沒接觸過c 的就不要往下看了。設計模式可能計算機系的同學都學過,不過我用得最多的可能是下面幾種 1.singleton 2.factory 3.strategy 因為這三個我覺得最簡單和使用.但 我的sip是要用狀態機的,所以決定用state設計模式.state模式對我們的sip有什麼...

設計模式之命令(State)模式

狀態模式是在程式開發時,經常用到的模式。如果沒有應用過,而實現業務功能。那你也一定是按照狀態模式的路子走的,只不過你沒有感覺到而已。它的實現,是要根據物件的內部狀態變化,而自動執行相應的功能。費話就不說了,請看一下源 這也是我研究設計模式時看到的乙個例子,把其翻譯成中文,使個位能夠看懂些,由於水平有...