iOS架构设计之简单工厂和抽象工厂

整体架构原理分析与设计

  • 简单工厂模式的参与者
    • 工厂(Factory)角色:接受客户端的请求,通过请求负责创建相应的产品对象
    • 抽象(Abstract Product)产品:是工厂模式所创建对象的父类或是共同拥有的接口。可是抽象类或是接口(协议)
    • 具体(ConcreteProduct)产品:工厂模式所创建的对象都是这个角色的实例
  • 简单工厂模式的演变
    • 当系统中只有唯一的产品时,可以省略抽象产品,如图所示。这样,工厂角色与具体产品可以合并。


      简单工程模式
  • 简单工程模式的优缺点
    • 工厂类含有必要的创建何种产品的逻辑,这样客户端只需要请求需要的产品,而不需要理会产品的实现细节
    • 工厂类只有一个,它集中了所有产品创建的逻辑,它将是整个系统的瓶颈,同时也造成系统难以拓展
    • 简单工程模式通常使用静态工厂方法,这使得工厂类无法由子类继承,这使得工厂角色无法形成基于继承的等级结构

工厂模式

  • 什么是工程方法
    • 定义一个用于创建对象的统一接口(iOS协议),然后由子类实现。
    • java:interface(接口)
    • iOS(OC、swfit):protocal(协议)
  • 工程角色
    • 抽象工厂(接口(协议)、抽象类)--->工厂标准
      • 例如:MyComputerFactory
    • 具体工厂--->具体工厂:遵循工厂标准协议
      • 例如:AppleComputerFactory
    • 抽象产品(抽象类、接口(协议))
      • 例如:CPU依赖MyComputerFactory
    • 具体产品
      • 例如:AppleComputer(Mac)
  • 工厂方法-应用场景
    • 创建复杂对象
    • 其实简单工厂——>工厂方法:在简单工厂基础之上进行抽象——>抽象工厂:在工厂方法基础之上再进一步抽象

总结工厂方法

  • 优点:达到了解耦和目的(扩展高、有助于团队协同开发)等等...
  • 缺点:类结构复杂(数量多)

看dome自己去体验
工厂模式dome

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容