1.简介

在阅读设计模式时,许多设计模式一看就能明白,但是建造模式是我一直没有搞懂的,各种书籍有不同的说法,各个博客也有不同说法(或者说没有说明白),今天在今日头条搜到的一个视频(https://www.ixigua.com/6797379500024791560),反正我是被讲明白了。下面我简单的整理一下。

2.类图

建造者模式的关键在于一句话:同样的构建过程可以创建出不同的表示。也就是说我得到的对象可能不同。但是我创造这类对象的步骤都是一样的。先做第一步、然后第二步、第三步…。
image.png

3.实例

视频中讲道建造者的动机部分说道:在创建一个复杂对象的过程中对象各个部分的经常发生剧烈变化,但是将这些部分组合起来的算法是相对稳定的,这句话极好的表达出来了模式的主要意图。
房子大家都有影响,假设现在我们要造房子,房子可能会有 草房子、木头房子、石头房子。
image.png
虽然房子不同,但是建造的步骤无非是:

  • 建造四周墙体
  • 给房子加个屋顶
  • 装个门
  • 加个窗户

不管你房子是什么?我建立房子的这些步骤是一定的。只是说具体怎么做,还是要看你建立什么房子。
image.png

房子
image.png
房子建造者
image.png
草房子建造者、木头房子建造者、石头房子建造者
image.png
image.png
image.png
导演类(可有可无):
image.png

使用
image.png

4.源代码

gitee:https://gitee.com/gao_xi/design-pattern.git