[code]
/**乙個類中的方法是不穩定的,他在不同的狀態下需要不同的方法,那麼我們就應該把方法剝離出去,隨著狀態來提供方法。。。
mm的狀態是不固定的,他在高興,猶豫,傷心的時候都會說話,吃飯,聊天,但是不同的狀態下的吃飯,聊天是不一樣的。。。。所以我們得根據不同的狀態來呼叫不同的方法。。。而狀態是會擴充套件的,可能有好多種狀態。。。。但是做什麼事情不會擴充套件
技術上:因為狀態擴充套件,所以狀態需要被抽出來,=>有乙個狀態介面,而每個狀態下面有具體的做某些事情的實現,所以在呼叫的守侯就呼叫某個狀態的吃飯,聊天
*/public inte***ce state
@override
public void eating()
@override
public void saying()
}public class mm
public void setname(string name)
public void saying()
}[/code]
設計模式 狀態模式
狀態模式 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。狀態模式主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況,把狀態的判斷邏輯轉移到表示不同狀態的一些列類當中,可以把複雜的判斷邏輯簡化。當乙個物件的行為取決於它的狀態,並且它必須在執行時刻根據狀態改變它的行...
設計模式 狀態模式
1.概述 當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。2.解決的問題 主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。3.模式中的角色 3.1 上下文環境 context 它定義了客...
設計模式 狀態模式
描述 允許物件在內部狀態改變時改變它的行為,物件看起來好像修改了它的類。主要解決的是當控制乙個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。通常應用在有好多狀態的流程中。類圖 以下程式模擬糖果機器投幣取糖果的狀態流程。1.定義狀態...