07GoF之工厂模式

GoF(Gang of Four):四人组,《Design Patterns: Elements of Reusable Object-Oriented Software》(《设计模式》)的作者,设计了23种设计模式.但时代发展,还有其它的设计模式,比如:JavaEE的设计模式(DAO模式、MVC模式等)。
● GoF23种设计模式可分为三大类:
○ 创建型(5个):解决对象创建问题。
■ 单例模式
■ 工厂方法模式
■ 抽象工厂模式
■ 建造者模式
■ 原型模式
○ 结构型(7个):一些类或对象组合在一起的经典结构。
■ 代理模式
■ 装饰模式
■ 适配器模式
■ 组合模式
■ 享元模式
■ 外观模式
■ 桥接模式
○ 行为型(11个):解决类或对象之间的交互问题。
■ 策略模式
■ 模板方法模式
■ 责任链模式
■ 观察者模式
■ 迭代子模式
■ 命令模式
■ 备忘录模式
■ 状态模式
■ 访问者模式
■ 中介者模式
■ 解释器模式
● 工厂模式是解决对象创建问题的,所以工厂模式属于创建型设计模式。这里为什么学习工厂模式呢?这是因为Spring框架底层使用了大量的工厂模式。


为什么学工厂模式?
Spring底层就是通过工厂模式+XML+反射机制实现的.


工厂模式的三种形态
● 第一种:简单工厂模式(Simple Factory):不属于23种设计模式之一。简单工厂模式又叫做:静态工厂方法模式。简单工厂模式是工厂方法模式的一种特殊实现。
● 第二种:工厂方法模式(Factory Method):是23种设计模式之一。
● 第三种:抽象工厂模式(Abstract Factory):是23种设计模式之一。


简单工厂模式

简单工厂模式的优点
● 客户端程序不需要关心对象的创建细节,需要哪个对象时,只需要向工厂索要即可,初步实现了责任的分离。客户端只负责“消费”,工厂负责“生产”。生产和消费分离。

简单工厂模式的缺点
● 缺点1:工厂类集中了所有产品的创造逻辑,形成一个无所不知的全能类,有人把它叫做上帝类。显然工厂类非常关键,不能出问题,一旦出问题,整个系统瘫痪。
● 缺点2:不符合OCP开闭原则,在进行系统扩展时,需要修改工厂类。

简单工厂模式的角色包括三个:
● 抽象产品 角色
● 具体产品 角色
● 工厂类 角色

相关推荐

  1. 07GoF工厂模式

    2024-01-06 13:08:02       46 阅读
  2. go设计模式工厂方法模式

    2024-01-06 13:08:02       33 阅读
  3. [go] 抽象工厂模式

    2024-01-06 13:08:02       47 阅读
  4. go实现工厂模式

    2024-01-06 13:08:02       34 阅读
  5. 【设计模式工厂模式

    2024-01-06 13:08:02       56 阅读
  6. 设计模式工厂模式

    2024-01-06 13:08:02       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 13:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 13:08:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 13:08:02       82 阅读
  4. Python语言-面向对象

    2024-01-06 13:08:02       91 阅读

热门阅读

  1. K8S三种发布方式和声明式资源管理

    2024-01-06 13:08:02       54 阅读
  2. [原创][R语言]股票分析实战[8]:因子与subset的关系

    2024-01-06 13:08:02       46 阅读
  3. iOS基础之修饰符

    2024-01-06 13:08:02       57 阅读
  4. mysql 通过sql计算部门路径的方法

    2024-01-06 13:08:02       56 阅读
  5. MySQL 函数大全

    2024-01-06 13:08:02       59 阅读
  6. oracle DG broken工具配置

    2024-01-06 13:08:02       50 阅读