三个例子说明建造者模式:
1.一个人活到70岁以上,都会经历这样的几个阶段:婴儿,少年,青年,中年,老年。虽然活法不一样,但是都要经历这几个不同阶段
2.游戏中的人物拿lol说明,每个英雄虽然q,w,e,r四个技能都不相同但是都有这四个技能。
3.构造游戏人物必须要有的脸,手,脚,等 但是大小,形状等都不相同。我们可以规定脸,手,脚等顺序,而中间的大小,形状随意支配,这样便
构造出不同的英雄人物。
- 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。
- 抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交与它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品。
- 建造者:实现抽象类的所有未实现的方法,具体来说一般是两项任务:组建产品;返回组建好的产品。
- 导演类:负责调用适当的建造者来组建产品,导演类一般不与产品类发生依赖关系,与导演类直接交互的是建造者类。一般来说,导演类被用来封装程序中易变的部分。
建造者模式与工厂模式类似,他们都是建造者模式,适用的场景也很相似。一般来说,如果产品的建造很复杂,那么请用工厂模式;如果产品的建造更复杂,那么请用建造者模式。