类簇在iOS中是一种非常实用的模式,例如:NSArray, NSDictionary等。
那么类簇有哪些特点了:
- 类簇将各个子类的实现细节隐藏起来了,只是提供了一个公共的抽象方法,我们不用去关心具体的实现细节。如UIButton的创建,会根据type值去创建不同的button,每个子类都继承了基类。
- 如果需要写一个类簇的子类,则需要继承具体的基类,并要自己实现基类的大部分公共方法,因为基类里面只是个抽象方法,然后根据类型去调用子类的方法。
- 所以我们一般不会去继承一个类簇写子类,而是用Category方式去扩展类簇的方法。
类簇和工厂模式有哪些区别了?
- 类簇看不到具体的实现细节,因为类簇的基类都是抽象的公共方法,实现细节是在子类中;工厂方法可以在基类中看到具体的实现细节。
- 类簇最好自己去继承基类写一个子类出来,因为类簇的子类需要重写基类的大部分方法,然后才去扩展和基类不一样的方法; 工厂模式可以写一个子类出来,依然可以调用基类的方法,然后再去扩展方法。