策略模式 - Strategy Pattern
用途 在演算法中替換一系列可能變動的部分 classDiagram IStrategy <|.. ConcreteStrategyA IStrategy <|.. ConcreteStrategyB Context *-- IStrategy note for Context "Execute -> do something with strat...
用途 在演算法中替換一系列可能變動的部分 classDiagram IStrategy <|.. ConcreteStrategyA IStrategy <|.. ConcreteStrategyB Context *-- IStrategy note for Context "Execute -> do something with strat...
用途 透過代理控制對要訪問的物件加上一些額外的操作 classDiagram IEditor <|.. EditorProxy IEditor <|.. Writer EditorProxy --> Writer Client ..> IEditor class IEditor{ <<Interface>>...
用途 動態地往一個類別中添加新的行為 classDiagram IProduct <|.. Product IProduct <|-- AbstractDecorator IProduct --o AbstractDecorator AbstractDecorator <|-- ConcreteDecoratorA AbstractDecor...
用途 透過抽象工廠模式使客戶端程式碼與具體產品的實現解耦,提高程式碼的可擴展性和可維護性 classDiagram Client ..> IFactory Client ..> ProductA Client ..> ProductB ProductA <|-- FactoryAProductA ProductA <|-- Fac...
用途 處理在不指定對象具體類別的情況下建立對象的問題 classDiagram IProduct <|-- ConcreteProductA IProduct <|-- ConcreteProductB IFactory <|-- ConcreteFactoryA ConcreteProductA <.. ConcreteFactoryA ...
用途 雙重檢查鎖定模式(也被稱為”雙重檢查加鎖優化”,”鎖暗示”(Lock hint))是一種軟體設計模式用來減少並發系統中競爭和同步的開銷。雙重檢查鎖定模式首先驗證鎖定條件(第一次檢查),只有通過鎖定條件驗證才真正的進行加鎖邏輯並再次驗證條件(第二次檢查)。 Class // Java 5中的final語義可以不使用volatile關鍵字實現安全的創建對象 public c...
定義 中介者模式是為了「定義一個封裝了對象間交互關係的對象」。這種方式避免了顯式調用其他類,促進了類間的鬆耦合,並且使得類間交互關係本身可以單獨修改。客戶類可以使用中介者向其他客戶類發送信息,並且通過中介者引發的事件收到信息 classDiagram Colleague --> IMediator : mediator Mediator1 --|> IMedi...
用途 在軟體開發中,簡單工廠模式用於封裝物件的創建邏輯, 客戶只需要提供必要的參數,而不需要關心具體的物件創建過程。 classDiagram Product <|-- ConcreteProductA Product <|-- ConcreteProductB Product <.. Client Factory <.. Clien...
用途 將複雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的對象。 classDiagram ConcreteBuilder <.. Client Director <.. Client Builder <--o Director Builder <|-- ConcreteBuilder cl...
用途 通過複製(Clone)一個已經存在的實例來返回新的實例,而不是新建(new)實例。 被複製的實例就是我們所稱的「原型」,這個原型是可定製的。 classDiagram IPrototype <.. Client IPrototype <|-- ConcretePrototype1 IPrototype <|-- ConcreteProto...