定義:當乙個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。
狀態模式主要解決的是當控制乙個物件狀態的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類中,可以把複雜的判斷邏輯簡化。
意圖:允許乙個物件在其內部狀態改變時改變它的行為
適用場景:
1.乙個物件的行為取決於它的狀態,並且它必須在執行時刻根據狀態改變它的行為。
2.乙個操作中含有龐大的多分支結構,並且這些分支決定於物件的狀態。
狀態模式算是比較簡單的設計模式了。
在此就不贅述了。
class girl
public void setstate(girlstate state)
public void cry()
public void say()
}abstract class girlstate
}class girlsadstate extends girlstate;
public void cry();
public void say();
}public class test
}
執行結果:
sad smile
sad cry
sad say
設計模式之State模式
state模式類似於switch的多路分鐘功能 狀態模式的ulm圖 狀態模式用於改變目標物件的行為方式,隨著狀態變化目標程式從乙個轉到另乙個目標程式。package state public class creature private class forg implements state pri...
設計模式之state模式
狀態模式 state pattern 允許乙個物件在其內部狀態改變時改變它的行為。適用場景 一 乙個物件的行為取決於他的狀態,並且它必須在執行時根據狀態改變它 的行為 二 乙個操作中含有龐大的多分支條件語句,並且這些分支依賴於該物件的 狀態。優缺點 狀態模式的主要優點在於封裝了轉換規則,其缺點在於使...
SIP之設計模式 State設計模式
學過設計模式和沒接觸過c 的就不要往下看了。設計模式可能計算機系的同學都學過,不過我用得最多的可能是下面幾種 1.singleton 2.factory 3.strategy 因為這三個我覺得最簡單和使用.但 我的sip是要用狀態機的,所以決定用state設計模式.state模式對我們的sip有什麼...