你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS設計模式學習(16)裝飾

IOS設計模式學習(16)裝飾

編輯:關於IOS

1 前言

在面向對象軟件中,向對象添加“東西”(行為),而不破壞其原有風格,因此增強了的對象是同一個類的加強版。任何“增強”均可以動態添加和刪除。我們把這個設計模式叫做“裝飾”,裝飾對象可以附加到另一個裝飾對象,也可以附加到原始對象,對其功能進行擴展,同時保留原始行為不受影響。

2 詳述

2.1 簡述

動態的給一個對象太添加一些額外的職責。就擴展功能來說,裝飾模式相比生成子類更為靈活。

2.2 何時使用

(1)想要在不影響其他對象的情況下,以動態,同名的方式給單個對象添加職責。

(2)想要擴展一個類的行為,卻做不到。類定義可以被隱藏,無法進行子類化;或者,對累的每個行為的擴展,為支持每種功能組合,將產生大量的子類。

(3)對類的職責的擴展是可選的。

2.3 Objective-C范疇與裝飾模式

范疇是一個Objective-C的語言功能,通過它可以向類添加行為(方法的接口與實現),而不必進行子類化。通過范疇添加的方法對類原有的方法沒有不良影響。范疇中得方法成為了類的一部分,並可由其子類繼承。

但這並不是一種嚴格的裝飾模式的實現,它實現了模式的意圖,但卻是一種變體。由裝飾器范疇添加的行為是編譯時綁定的,雖然Objective-C原本支持動態綁定。而且裝飾器范疇實際上沒有封裝被擴展類的實例。

但是事先少量的裝飾器的時候,它比真正子類方式更為輕量,容易。

3 結語

以上是所有內容,希望對大家有所幫助。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved