23种设计模式之工厂模式学习笔记

什么是工厂模式?

工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式。该模式用于封装和管理对象的创建,是一种创建型模式。本文从一个具体的例子逐步深入分析,来体会三种工厂模式的应用场景和利弊。

1、简单工厂模式

什么是简单工厂模式?

简单工厂也叫做静态工厂,在程序编译成字节码文件前就已经确立了工厂类对一些对象的封装关系,只需要根据参数来获取工厂对象来获取对应的目标对象。

优点:

  • 客户端创建对象时只需要记住特定的参数,而不需要记住复杂的类名,也不用关注实现的过程。(实现了封装和部分解耦)
  • 创建对象不需要单独实例化,而是通过工厂类直接获取示例(实现复用)

缺点:

  • 实例化对象的逻辑全部封装在一个工厂类里,每次需求变化都要单独修改工厂类(违反了开闭原则)。
  • 不方便扩展子类

应用场景:

适合应用于业务简单产品较少且一旦创建完成不会再发生修改的情况

简单工厂逻辑结构图:

23种设计模式之工厂模式学习笔记
AbstractProduct: 抽象工厂就是把Product所有共性的方法抽取出来成为一个抽象类。
Product: 就是具体的产品类,拿手机来举例的话,那么ProductA好比就是苹果手机,ProductB就好比小米手机。
Factory: 就是对应Product的代工厂对象,工厂类,根据上面的举例对象来说,那么此时Factory就好比如富士康工厂,加工各种品牌的手机,可通过选择来选取加工不同品牌的手机。

具体实现:
接口Phone

上一篇:Effective C++ 笔记 —— Item 46: Define non-member functions inside templates when type conversions are


下一篇:注解与反射基础回顾