类族模式可以隐藏抽象基类背后的实现细节。Objective-C的系统框架中普遍使用此模式。
比如界面框架UIKit中就有一个名为UIButton的类。想创建按钮,需要调用下面这个类方法
-UIButton buttonWithType:(UIButtonType)type;
该方法返回的对象,其类型取决于传入的按钮类型。然而,不管返回什么类型的对象,它们都继承自同一个基类:UIButton。 这么做的意义在于:UIButton类的使用者无须关心创建出来的按钮具体属于哪个子类,也不用考虑按钮的绘制方式等细节。使用者只需明白如何创建按钮,如何设置像标题这样的属性,如何增加触摸动作的目标对象等问题就好。
1,类族模式可以把实现细节隐藏在一套简单的公共接口后面。
2,系统框架中经常使用类族。
3,从类族的公共抽象基类中继承子类时要当心,若有开发文档,则应首先阅读。