簡介
類族(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)都是類似的。