参考资料:
http://www.codingdict.com/article/8716
https://my.oschina.net/u/3865831/blog/2998468
https://www.cnblogs.com/liaoweipeng/p/5790603.html
注:未完待续
1、什么是建造者模式
释一
构建器(Builder)模式使用简单对象并使用逐步方法构建复杂对象。
这种类型的设计模式属于创建模式,因为此模式提供了创建对象的最佳方法之一。
构建器(Builder)模式构建器逐步构建最终对象,此构建器独立于其他对象。
释二
建造者模式(又称生成器模式)将一个复杂对象的构建过程和它的表示分离,从而使同样的构建过程,可以生成不同的表示。
建造者模式将一个复杂对象的构建过程分成一个个简单的步骤,用户只需要了解对象的类型和内容,无须关注复杂对象的构建过程,帮助用户屏蔽掉内部具体的构建细节。
释三
将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
2、建造者模式主要角色
(1)建造者接口(Builder)
builder:为创建一个产品对象的各个部件指定抽象接口。
Builder接口主要用来定义建造者构建产品对象的各部分的行为
(2)具体建造者(ConcreteBuilder)
ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。
具体建造者是用来直接创建产品对象的,具体建造者要实现两类方法,一类是建造方法,
例如:buildPart1()、buildPart2(),另一类是获取建造好的产品对象的方法
(3)导演(Director)
Director:构造一个使用Builder接口的对象
导演通过调用具体建造者来创建需要的产品对象
(4)产品(Product)
Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
产品是用户需要的复杂对象
3、建造者模式和工厂模式的区别
工厂模式一般都是创建一个产品对象,只需要将产品对象创建出来,不关心产品对象的组成细节和组成过程。
建造者模式也是创建一个产品对象,不同的是建造者模式不仅要将产品对象创建出来,还要关心产品对象的组成细节和组成过程。
4、建造者模式适用场景
建造者模式是在当创建复杂对象的复杂算法一个独立与该对象的组成部分以及它们的装配方式时适用的模式。
网友评论