類簇是Foundation框架中廣泛使用的設計模式。類簇在公共抽象超類下對多個私有的具體子類進行分組。以這種方式對類進行分組簡化了面向對象框架的公共可見體系結構,而不會降低其功能豐富度。類簇是基於抽象工廠設計模式的。
常見的類簇有 NSString
、NSArray
、NSDictionary
等。 以數組爲例:不管創建的是可變還是不可變的數組,在alloc
之後得到的類都是 __NSPlaceholderArray
。而當我們 init
一個不可變的空數組之後,得到的是 __NSArray0
;如果有且只有一個元素,那就是 __NSSingleObjectArrayI
;有多個元素的,叫做 __NSArrayI
;init
出來一個可變數組的話,都是 __NSArrayM
。
優點:
- 可以將抽象基類背後的複雜細節隱藏起來。
- 程序員不會需要記住各種創建對象的具體類實現,簡 化了開發成本,提高了開發效率。
- 便於進行封裝和組件化。
- 減少了 if-else 這樣缺乏擴展性的代碼。
- 增加新功能支持不影響其他代碼。
缺點
- 已有的類簇非常不好擴展。
我們運用類簇的場景:
a. 出現 bug 時,可以通過崩潰報告中的類簇關鍵字,快速定位 bug 位置。
b. 在實現一些固定且並不需要經常修改的事物時,可以高效的選擇類簇去實現。
例:
- 針對不同版本,不同機型往往需要不同的設置,這時可以選擇使用類簇。
- app 的設置頁面這種並不需要經常修改的頁面,可以使用類簇去創建大量重複的佈局代碼。
收錄於網絡,如有侵權,請聯繫小編刪除