Java设计模式(十):建造者模式

建造者模式(builder pattern)

建造者模式(builder pattern):属于对象的创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。


建造者模式UML

Java设计模式(十):建造者模式


建造者模式涉及的角色

抽象建造者(Builder)角色:是为创建一个 Product 对象的各个部件指定的抽象接口。此接口独立于应用程序的商业逻辑。模式中直接创建产品对象的是具体建造者 (ConcreteBuilder)角色。具体建造者类必须实现这个接口所要求的两种方法:一种是建造方法(buildPart1和 buildPart2),另一种是返还结构方法(getResult)。一般来说,产品所包含的零件数目与建造方法的数目相符。换言之,有多少 零件,就有多少相应的建造方法。具体建造者(ConcreteBuilder)角色:它是具体的建造者,实现 Builder 接口,构造和装配各个部件。担任这个角色的是与应用程序紧密相关的一些类,它们在应用程序调用下创建产品的实例。这个角色要完成的任务包括:1.实现抽象建造者Builder所声明的接口,给出一步一步地完成创建产品实例的操作。2.在建造过程完成后,提供产品的实例。指挥者(Director)角色:它调用具体建造者角色以创建产品对象。应当指出的是,导演者角色并没有产品类的具体知识,真正拥有产品类的具体知识的是具体建造者角色。产品(Product)角色:产品便是建造中的复杂对象。一般来说,一个系统中会有多于一个的产品类,而且这些产品类并不一定有共同的接口,而完全可以是不相关联的。


示例代码

产品类 Product

Java设计模式(十):建造者模式

Java

抽象建造者类 Builder

Java设计模式(十):建造者模式

Java

具体建造者类 ConcreteBuilder

Java设计模式(十):建造者模式

Java

指挥者类 Director

Java设计模式(十):建造者模式

Java

客户端测试类 TestBuilderPattern

Java设计模式(十):建造者模式

Java


建造者模式使用场景

建造者模式主要是用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。


建造者模式的优点

建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

每晚8:00烛光学院的讲师将会在腾讯课堂烛光学院Java高级免费试听课程中给大家详细讲解的,而你只需8:00准时进入课堂就可以了

Java学习资料获取或免费进入课堂权限获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值