設計模式閱讀備忘筆記-裝飾模式
策略模式(strategy)
動態的給乙個物件新增一些額外的職責,就是增加功能來說,裝飾模式比生成子類更加靈活。
理解:將所需的功能按正確的順序串聯起來進行控制,每個裝飾物件的實現就和如何使用這個物件分開了,每個裝飾物件只關心自己的功能,不需要關心如何新增在物件鏈中。
**例子:
1、抽象物件介面
//定義乙個物件的介面,可以對物件動態新增職責
abstract class acompoent
2、最初沒有被任何裝飾的物件
//被裝飾的原始物件,類似於系統中已有的類
class contretecompoent: acompoent
}
3、裝飾類介面
class decorator : acompoent
//執行操作
public
override
void
operation()
}
4、具體裝飾類
//具體裝飾功能類
class contretedecotora : decorator
//新增的函式
public
void
addfunction()
}
5、使用例子
//具體使用
void dosomethings()
總結:為已有的功能動態新增更多的功能的一種方式,比如新加的功能和字段僅僅是為了滿足一些只在某種特定情況下才會執行的特殊需求,就可以使用裝飾模式,把新功能單獨寫在裝飾類中,並用裝飾類裝飾原來的物件,優點是可以把類中的核心職責和裝飾功能分開,簡化類。 設計模式閱讀備忘筆記 組合模式
設計模式閱讀備忘筆記 組合模式 組合模式 將物件組合合成樹形結構以標識 部分 整體 的層次結構,組合模式使得使用者對單個物件和組合物件的使用具有一致性。最近在研究行為樹,突然想起來組合模式,就此記錄回顧一下。例子如下 抽象節點 public abstract class acomposite pub...
大話設計模式閱讀筆記 裝飾模式
1.裝飾模式 decorator 動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。component 是定義乙個物件介面,可以給這些物件動態的新增職責,concretecomponent是定義了乙個具體的物件,也可以給這個物件新增一些職責。decorator,裝飾抽象...
設計模式筆記(四) 裝飾模式
裝飾模式 decorator 裝飾模式是為已有功能動態的新增更多功能的一種方式。using system namespace studesignmode.decorator public abscustomer public abscustomer string name public virtua...