设计模式(二)---构造者模式汇总

简单工厂模式

简单工厂模式结构图:
在这里插入图片描述
简单工厂模式包括这几个角色:

  1. Prouduct(抽象产品):所有具体产品的基类,符合依赖反转原则
  2. ConcreteProduct(具体产品)
  3. Factory(产品工厂):对外提供产品的入口

工厂方法模式

工厂方法模式结构如图:
在这里插入图片描述
包括如下角色:

  1. Product(抽象产品)
  2. ConcreateProduct(具体产品)
  3. Factory(抽象公厂)
  4. ConcreateFactory(具体工厂):每一个具体工厂对应一个具体产品

工厂方法旨在改进简单工厂的不便于拓展,但也同时使类大大增加,增加了系统的复杂度。

抽象工厂模式

抽象工厂模式结构如图:
在这里插入图片描述
包括如下角色:

  1. Product(抽象产品)
  2. ConcreateProduct(具体产品)
  3. Factory(抽象公厂)
  4. ConcreateFactory(具体工厂):每一个具体工厂对应一个产品族

抽象工厂模式综合了简单工厂与工厂方法模式。相对于简单工厂的难以拓展,继承了工厂方法的多工厂思想,同时针对工厂方法的类复杂,糅合了简单工厂的单工厂多产品思想,一个具体工厂可以生产一个产品族。

建造者模式

建造者模式相对于前面的几个侧重于创建,更侧重于集成。
建造者模式适用于构建一个复杂对象。
建造者模式结构图如下:
在这里插入图片描述

包括如下角色:

  1. Builder(抽象建造者)
  2. ConcreateBuilder(具体建造者)
  3. Product(复杂产品)
  4. Director(指挥者类):负责安排复杂对象的构造次序,指挥者与抽象构造者之间存在关联关系,可以在其construct()建造方法中调用建造者对象的部件构造与装配方法,完成复杂对象的构造。

原型模式

原型模式定义:通过复制原型对象创建与之相同的对象。
C++中的对象拷贝构造函数就是原型模式思想。

单例模式

单例模式定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式要点有三:1.单例类只能有一个实例。
2.它必须自行创建这个实例 3.它必须自行向整个系统提供这个实例。
单例模式结构图如图:
在这里插入图片描述

单例模式有饿汉式单例以及懒汉式单例,上述结构图为懒汉式单例。饿汉式单例是静态成员对象在初始化时即创建好。

发布了5 篇原创文章 · 获赞 0 · 访问量 212

猜你喜欢

转载自blog.csdn.net/m0_46412866/article/details/105033312