Objective-C的類族模式

簡介


類族(class cluster)模式,可以隱藏其抽象基類(abstract base class)背后的實現細節。

例如:UIButton類中,假如我們想要創建一個button對象,需要進行初始化,那么其初始化方法為

+(UIButton)buttonWithType:(UIButtonType)type;

button對象的類型 取決我們使用上述方法傳入的一個type參數的類型,假如我們想創建不同類型的button,只需要傳入不同的type即可,這就是類族模式,將大部分細節隱藏起來,只提供一個公共接口用來創建對象。

例子


  • 創建一個類People,具有name屬性,還有初始化方法類方法PeopleWithSex以及需要做的事的方法DoSomething。

  • 給People加一個枚舉類型PeopleSex,分別設置三個屬性PeopleSexMan,

PeopleSexWoman,

PeopleSexNone

  • 利用這三個屬性在初始化方法中用switch語句在People類中進行實例的創建。

  • 另外注意isKindOfClass與isMemberOfClass的區別。

  • Cocoa中的(NSDictionary,NSArray,NSSet)都是類似的。

Demo地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容