首頁  >  問答  >  主體

设计模式 - 裝飾者模式如何選擇?iOS開發中什麼地方體現了裝飾者模式的身影?

今天學習了設計模式中的裝飾者模式?不過對於我們何時使用裝飾者模式不是很清楚?請指教

PHP中文网PHP中文网2713 天前329

全部回覆(2)我來回復

  • 阿神

    阿神2017-04-17 13:27:53

    1. 想要在不影響其他物件的情況下,以動態,透明的方式給單一物件添加任務
    2. 想要擴充一個類別的行為,卻做不到。類別定義可能被隱藏,無法進行子類別化;或者,對類別的每個行為的擴展,為支援這種功能的組合,將產生大量的子類別
    3. 對類別的職責的擴展時可選的。

      Objective-c程式設計之道中這樣解釋道~

    另:《設計模式》這本書上說,裝飾模式:動態的給一個物件添加一些額外的職責,就擴展功能來說,裝飾相比生成子類更加靈活。

    註:在iOS開發中為UIImage創建影像濾鏡會用到這個設計模式~

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 13:27:53

    1. 需要擴充一個類別的功能,或為一個類別新增附加職責。
    2. 需要動態的為一個物件新增功能,這些功能可以再動態的撤銷。
    3. 需要增加一些基本功能的排列組合而產生的非常大量的功能,從而使繼承關係變的不切實際。
    4. 當無法採用產生子類別的方法進行擴充時。一種情況是,可能有大量獨立的擴展,為支持每種組合將產生大量的子類,使得子類數目呈爆炸性增長。另一種情況可能是因為類別定義被隱藏,或類別定義不能用來產生子類別。

    以上內容轉自百度百科。 。 。 。

    回覆
    0
  • 取消回覆