极简设计模式(1)-工厂三兄弟

在我们刚开始学习设计模式的的时候,一个比较让人头疼的问题在于,我们没有办法理解为什么要用,其实原因很简单,我们学习的时候,看到的需求和代码是固定的,他们没有告诉你如果代码要变动,会怎么变,而设计模式是面向变化的,因此我希望用一篇文章,去回顾每一个设计模式,同时指出来,它应对的是什么样的变化,希望能够帮助大家理解设计模式本身。

一. 简单工厂模式

  • 一句话描述:简单工厂模式,就是通过封装对象的创建过程(包括什么对象被创建和怎么被创建),使得使用者不需要关心对象的构建,只需要专注于消费对象
  • 使用场景:
    1.构建过程复杂且多变的对象,用工厂模式来封装构建细节
    2.希望对构建过程有更强的掌控力的情景(比方说插入逻辑或者改用对象池等)
    3.构建的对象类型是可变的,就好像是水果下面可以增加新的种类等
  • 应对的变化:构建过程的变化,构建对象的变化
  • 缺陷:每次新增产品的时候,工厂类一定要修改相应的代码,没有完全符合”开闭“原则

二.工厂模式

  • 一句话描述:工厂模式是将工厂抽象化,从而允许通过实现抽象工厂接口来赋予新的对象构建能力的模式
  • 使用场景:
    1.产品具有层级概念,产品的种类繁杂,不同层级的产品构建细节不同
    2.产品是易变
  • 应对的变化:构建过程的变化,构建对象的变化

抽象工厂模式

  • 一句话描述:抽象工厂模式中,允许工厂生产多种抽象产品(而工厂模式中只允许一种),称之为产品族
  • 使用场景:
    1.对于所有的使用场景,都有两种及以上的实现方法,且方法之间是互相绑定的(比方说特定数据库,有增删改查四种产品)
  • 应对的变化:特定种类的产品的变化

总结工厂三兄弟

工厂三兄弟的核心目标是封装创建过程,他们之间的差异在于面向创建对象的差异,其中工厂模式是为了解决简单工厂中的开闭问题,而抽象工厂模式是为了解决面对的不是单一产品,而是多类别产品的问题

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 关于设计模式,是一个永远说不完的也说不清的话题。毕竟在编程的世界里,没有最好的设计模式,只有最合适的设计模式...
    VV木公子阅读 1,756评论 0 9
  • 创建型模式 抽象工厂模式(abstract facroty) 3.1模式动机 在工厂方法模式中具体工厂负责生产具体...
    僚机KK阅读 821评论 0 2
  • 0.提前说明 模式选择的方法1)模式的功能——看是否能解决问题2)模式的本质——看模式是否主要用来解决这类问题3)...
    王侦阅读 1,277评论 0 1
  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    隔墙送来秋千影阅读 2,828评论 0 11
  • 创建型模式 工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设...
    liuyang7519阅读 401评论 0 2

友情链接更多精彩内容