工厂模式
1、什么是工厂模式
工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的
主要用工厂方法代替 new 操作,以提高系统的扩展性和降低维护成本。工厂模式分为简单工厂模式、工厂模式、抽象工厂模式。这些讲一下简单工厂模式和工厂模式。
2、工厂模式用在什么地方
- 在有子类的情况下都可以考虑使用工厂模式。
3、工厂模式的使用
- 创建产品类
- 创建工厂类
- 通过工程类方式生成产品类并返回
- 如果是简单工厂,则一个工厂对应所有的产品
- 如果是工厂模式,则一个工厂对应一个产品
4、总结
使用工厂模式,可以将创建的具体过程屏蔽起来,起到减少代码和提高灵活度的目的。
有时可以选择在类中直接实现工厂模式,例如最常见的 initWithFrame
不过在如果生成的情况多的话,最好还是用工厂类实现工厂模式,方便管理。
5、demo
/// 普通工厂模式
import UIKit
class House: NSObject {
var size : CGSize?
var height : Float?
var floorNumber : Int?
override var description: String {
return "place:\(self.place)) size:\(self.size) height:\(self.height) floorNumber:\(self.floorNumber)"
}
}
class HouseFactory: NSObject {
class func createHouse() -> House {
return House();
}
class func createBigHouse() -> House {
let bigHouse = House()
bigHouse.size = CGSize(width: 100, height: 100)
bigHouse.height = 15
bigHouse.floorNumber = 5
return bigHouse;
}
class func createSmallHouse() -> House {
let smallHouse = House()
smallHouse.size = CGSize(width: 8, height: 10)
smallHouse.height = 2
smallHouse.floorNumber = 1
return smallHouse;
}
}
简单工厂模式则就是UIButton(type: .custom)
好处是可以隐藏具体子类,坏处是类多了就越来越难管理类。
网友评论