整体架构原理分析与设计
- 简单工厂模式的参与者
- 工厂(Factory)角色:接受客户端的请求,通过请求负责创建相应的产品对象
- 抽象(Abstract Product)产品:是工厂模式所创建对象的父类或是共同拥有的接口。可是抽象类或是接口(协议)
- 具体(ConcreteProduct)产品:工厂模式所创建的对象都是这个角色的实例
- 简单工厂模式的演变
-
当系统中只有唯一的产品时,可以省略抽象产品,如图所示。这样,工厂角色与具体产品可以合并。
-
- 简单工程模式的优缺点
- 工厂类含有必要的创建何种产品的逻辑,这样客户端只需要请求需要的产品,而不需要理会产品的实现细节
- 工厂类只有一个,它集中了所有产品创建的逻辑,它将是整个系统的瓶颈,同时也造成系统难以拓展
- 简单工程模式通常使用静态工厂方法,这使得工厂类无法由子类继承,这使得工厂角色无法形成基于继承的等级结构
工厂模式
- 什么是工程方法
- 定义一个用于创建对象的统一接口(iOS协议),然后由子类实现。
- java:interface(接口)
- iOS(OC、swfit):protocal(协议)
- 工程角色
- 抽象工厂(接口(协议)、抽象类)--->工厂标准
- 例如:MyComputerFactory
- 具体工厂--->具体工厂:遵循工厂标准协议
- 例如:AppleComputerFactory
- 抽象产品(抽象类、接口(协议))
- 例如:CPU依赖MyComputerFactory
- 具体产品
- 例如:AppleComputer(Mac)
- 抽象工厂(接口(协议)、抽象类)--->工厂标准
- 工厂方法-应用场景
- 创建复杂对象
- 其实简单工厂——>工厂方法:在简单工厂基础之上进行抽象——>抽象工厂:在工厂方法基础之上再进一步抽象
总结工厂方法
- 优点:达到了解耦和目的(扩展高、有助于团队协同开发)等等...
- 缺点:类结构复杂(数量多)
看dome自己去体验
工厂模式dome