建造者模式(builder pattern)
建造者模式(builder pattern):属于对象的创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式UML
建造者模式涉及的角色
抽象建造者(Builder)角色:是为创建一个 Product 对象的各个部件指定的抽象接口。此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者 (ConcreteBuilder)角色。具体建造者类必须实现这个接口所要求的两种方法:一种是建造方法(buildPart1和 buildPart2),另一种是返还结构方法(getResult)。一般来说,产品所包含的零件数目与建造方法的数目相符。换言之,有多少 零件,就有多少相应的建造方法。具体建造者(ConcreteBuilder)角色:它是具体的建造者,实现 Builder 接口,构造和装配各个部件。担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:1.实现抽象建造者Builder所声明的接口,给出一步一步地完成创建产品实例的操作。2.在建造过程完成后,提供产品的实例。指挥者(Director)角色:它调用具体建造者角色以创建产品对象。应当指出的是,导演者角色并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者角色。产品(Product)角色:产品便是建造中的复杂对象。一般来说,一个系统中会有多于一个的产品类,而且这些产品类并不一定有共同的接口,而完全可以是不相关联的。
示例代码
产品类 Product
Java
抽象建造者类 Builder
Java
具体建造者类 ConcreteBuilder
Java
指挥者类 Director
Java
客户端测试类 TestBuilderPattern
Java
建造者模式使用场景
建造者模式主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。
建造者模式的优点
建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。
每晚8:00烛光学院的讲师将会在腾讯课堂烛光学院Java高级免费试听课程中给大家详细讲解的,而你只需8:00准时进入课堂就可以了
Java学习资料获取或免费进入课堂权限获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==