11-28

抽象類能有構造函數,可是不能實例化,由於要保證其子類在建立的時候可以進行正確的初始化 app

1.什麼是裝飾者模式 函數

Decorator模式(別名Wrapper):動態將職責附加到對象上,若要擴展功能,裝飾者提供了比繼承更具彈性的代替方案。 spa

2.由什麼組成 設計

      (1)抽象構件角色:給出一個抽象接口,以規範準備接收附加責任的對象。
  (2)具體構件角色:定義一個將要接收附加責任的類。
  (3)裝飾角色:持有一個構件對象的實例,並定義一個與抽象構件接口一致的接口。
  (4)具體裝飾角色:負責給構件對象添加上附加的責任。
    對象


3.好處 繼承

經過使用不一樣的具體裝飾類以及這些裝飾類的排列組合,設計師能夠創造出不少不一樣行爲的組合。 接口

4.哪些適用 擴展

1. 須要擴展一個類的功能,或給一個類添加附加職責。
2. 須要動態的給一個對象添加功能,這些功能能夠再動態的撤銷。
3. 須要增長由一些基本功能的排列組合而產生的很是大量的功能,從而使繼承關係變的不現實。
4. 當不能採用生成子類的方法進行擴充時。一種狀況是,可能有大量獨立的擴展,爲支持每一種組合將產生大量的子類,使得子類數目呈爆炸性增加。另外一種狀況多是由於類定義被隱藏,或類定義不能用於生成子類。 構造函數

本站公眾號
   歡迎關注本站公眾號,獲取更多信息