類簇在iOS中是一種非常實用的模式偎行,例如:NSArray, NSDictionary等鹏往。
那么類簇有哪些特點了:
- 類簇將各個子類的實現(xiàn)細(xì)節(jié)隱藏起來了邑时,只是提供了一個公共的抽象方法稻艰,我們不用去關(guān)心具體的實現(xiàn)細(xì)節(jié)诽偷。如UIButton的創(chuàng)建客给,會根據(jù)type值去創(chuàng)建不同的button用押,每個子類都繼承了基類。
- 如果需要寫一個類簇的子類靶剑,則需要繼承具體的基類蜻拨,并要自己實現(xiàn)基類的大部分公共方法,因為基類里面只是個抽象方法桩引,然后根據(jù)類型去調(diào)用子類的方法缎讼。
- 所以我們一般不會去繼承一個類簇寫子類,而是用Category方式去擴展類簇的方法坑匠。
類簇和工廠模式有哪些區(qū)別了血崭?
- 類簇看不到具體的實現(xiàn)細(xì)節(jié),因為類簇的基類都是抽象的公共方法,實現(xiàn)細(xì)節(jié)是在子類中夹纫;工廠方法可以在基類中看到具體的實現(xiàn)細(xì)節(jié)咽瓷。
- 類簇最好自己去繼承基類寫一個子類出來,因為類簇的子類需要重寫基類的大部分方法舰讹,然后才去擴展和基類不一樣的方法忱详; 工廠模式可以寫一個子類出來,依然可以調(diào)用基類的方法跺涤,然后再去擴展方法匈睁。