// 狀態介面
public
inte***ce
state
class concretestatea implements state
@override
public
void
handle(string param)
}class concretestateb implements state
@override
public
void
handle(string param)
}
// 環境角色類
public
class
context
public
void
dosomething(string param)
}
// 客戶端
public
class
client
}
輸出結果
concretestatea is handleing aaa策略模式:封裝一系列平行且複雜多變的實現方式concretestateb is handleing aaa
concretestatea is handleing aaa
concretestateb is handleing aaa
狀態模式:實現把物件的內在狀態的變化封裝起來,用外部行為來表現出來
知乎通俗解答
每日一記 設計模式 工廠模式
工廠模式屬於建立型模式,是非常常見的設計模式 工廠模式可分為簡單工廠 工廠方法 抽象工廠 簡單工廠由乙個工廠類根據傳入的參量決定建立出哪一種產品類的例項,雖然降低了客戶端對於產品類的依賴,但是所有的邏輯都集中在工廠類中,每當要增加一種新產品時就要修改工廠類的 違反了 開閉原則 擴充套件性不強。產品 ...
每日一記 設計模式 單例模式
先從最常見的單例模式開始寫起 簡潔而且執行緒安全,但是缺點是即使不呼叫getinstance 方法ins也會被初始化,造成一定的資源浪費 public class singleton public static singleton getinstance 為了避免餓漢式的浪費,可按照如下實現 pub...
每日一記 設計模式 訪問者模式
商品介面 public inte ce goods class basketball implements goods public intgetprice override public intaccept visitor visitor class fruit implements goods ...