20 狀態模式(State)

2021-07-25 05:18:59 字數 1136 閱讀 3218

可以通過改變狀態來獲得不同的行為。

你的好友能同時看到你的變化。看圖:

state類是個狀態類,context類可以實現切換,我們來看看**:

package com.xtfggef.dp.state;  

/**

* 狀態類的核心類

* 2012-12-1

*@author erqing

* */

public

class

state

public

void

setvalue(string value)

public

void

method1()

public

void

method2()

}

package com.xtfggef.dp.state;  

/**

* 狀態模式的切換類 2012-12-1

*@author erqing

* */public

class

context

public state getstate()

public

void

setstate(state state)

public

void

method() else

if (state.getvalue().equals("state2"))

} }

測試類:

public

class test

}

輸出:

execute the first opt!

execute the second opt!

根據這個特性,狀態模式在日常開發中用的挺多的,尤其是做**的時候,我們有時希望根據物件的某一屬性,區別開他們的一些功能,比如說簡單的許可權控制等。

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