
目录
一、建造者模式
通俗的讲,比如你想组装一个电脑,需要机箱、显示器、键盘、鼠标,但是它们选取的品牌各异,最终的电脑价格和性能又是天差地别。
而这样的根据相同的配件,不同的组装所产生出的具体的内容,就是建造者模式的具体实现,也就是将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
二、建造者模式的结构
1、抽象建造者(Builder)
它声明为创建一个产品对象的各个部件指定的抽象接口,在该接口中一般声明两类方法,一类方法是buildPatX(),他们用于创建复杂对象的各个部件;另一类方法是getResult(),它们用于返回复杂对象。Builder既可以是抽象类,也可以是接口。
2、具体建造者(ConcreteBuilder)
实现抽象建造者接口,构建和装配各个部件,定义并明确它所创建的复杂对象,也可以提供一个方法返回创建好的复杂产品对象。
3、指挥者(Director)
它负责安排复杂对象的建造次序,指挥者与抽象建造者之间存在关联关系,可以在其construct()构造方法中调用建造者对象的部件构造与装配方法,完成复杂对象的建造。客户端一般只需要与指挥者进行交互,在客户端确定具体建造者的类型,并实例化具体建造者对象(也可以通过配置文件和反射机制),然后通过指挥者类的构造函数或者setter方法将该对象传入指挥者类中。它主要是用
本文详细介绍了Java中的建造者模式,通过电脑组装的例子阐述了建造者模式的结构,包括抽象建造者、具体建造者、指挥者和产品四个部分。同时,讨论了建造者模式的优点如解耦、方便扩展以及缺点如适用范围有限。文章还提供了一个违背原则的电脑组装方案,展示了如何使用建造者模式改进代码,使其遵循设计原则,提高代码可读性和复用性。
订阅专栏 解锁全文
2409





