訪問者模式 - Visitor Pattern
用途 將操作從元素的類別中分離出來,並將其封裝在訪問者類別中 在不修改元素類別的情況下,可以輕鬆地新增新的操作或訪問者 classDiagram ConcreteVisitorA ..|> IVisitor ConcreteVisitorB ..|> IVisitor ConcreteElementA ..|> Element Concre...
用途 將操作從元素的類別中分離出來,並將其封裝在訪問者類別中 在不修改元素類別的情況下,可以輕鬆地新增新的操作或訪問者 classDiagram ConcreteVisitorA ..|> IVisitor ConcreteVisitorB ..|> IVisitor ConcreteElementA ..|> Element Concre...
用途 管理相依的觀察者,在被觀察對象發生變動發出通知觀察者 classDiagram note for Client "Create and register Observers, notify all observers when you need." Client ..> IObserver Client ..> ISubject IObserve...
用途 透過改變狀態來改變行為,讓每個狀態行為獨立易於添加、修改 classDiagram ConcreteStateA ..|> IState ConcreteStateB ..|> IState IState --o Context Client ..> Context note for Client "Create context the...
用途 管理物件狀態的存取 classDiagram note for Client "Originator modify content save to Memento\n MementoManager manage Memento" MementoManager --> Memento Originator --> Memento Client --...
用途 在演算法中替換一系列可能變動的部分 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關鍵字實現安全的創建對象 ...