JAVA 建造者模式

百度经验

页面数据加载中...

教授无处不在

建造者模式的出现主要用于创建复杂对象,和工厂模式的区别就在于工厂模式注重于创建对象,建造者模式是将复杂的对象进行分解,达到只需要拓展对类的行为无需关注类的内部细节的目的,并且对类有高度封装 。客户端只需要交给一个负责指挥建造的对象的角色,再由具体指挥者指挥建造者进行复杂的操作。

1/1

UML类图

首先看下UML类图关系,WMBuilder和LMBuilder继承Builder来实现Builder的抽象方法(name,bathroom,bedroom,kitchen)。

再通过Director类来指挥建造者,实现具体复杂的操作

1/1

本页面未经授权抓取自百度经验

本页面未经授权抓取自百度经验
本页面未经授权抓取自百度经验

1/2

设计抽象概念

首先我们创建Product类,设置4个私有属性:name,bathroom,bedroom,kitchen,再开放对应Set方法,最后添加Show方法来具体展示。如图:

2/2

再创建Builder类,将Product对象供子类使用,开放4个抽象方法name,bathroom,bedroom,kitchen。提供一个获取实例的方法。

1/2

实现抽象概念

通过继承Builder抽象类来重写name,kitchen,bedroom,bathroom方法。每个子类都有自己的具体行为,这里要建立WMBuilder和LMBuilder2个类如下图。

2/2

通过Director类来指挥具体建造者,其中 construct方法执行具体复杂的行为,并返回具体建造者对象,如图中结构。

1/1

客户端调用

最后客户端通过Builder指向对应子类,再将建造者交于Directory进行指挥实现类的复杂行为,整个过程无需关注内部细节。获取实例后调用展示方法。如图:

通过new出Builder的实例对象(wmbuilder )再将wmbuilder传入 dir的构造参数再通过dir.construct()方法获取Product实例,最后 product调用show()方法输出信息 。

JAVA 建造者模式

JAVA 建造者模式

[重新阅读]
辅助模式