建造者模式

本文详细介绍了Builder模式的概念及其应用场景。通过构建复杂对象的例子说明了该模式如何实现构建过程与表示的分离,使同样的构建过程可以创建不同的表示。文章还提供了具体的Java代码示例,包括被构建对象、构建者接口及实现类、导演类等,帮助读者更好地理解Builder模式的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Builder模式的定义是:[b]将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。[/b] 首先它意图是要构建一个复杂的对象,而这个复杂的对象往往需要由好几个子对象或分步聚来完成最终的这个对象的构建,而这个复杂对象的子对像经常需要不断的变化,但它的构建过程是相对是稳定的。


在构造一个对象的时候,往往有很多复杂的过程和次序,例如建造一个机器人,那要先造头,还是要先造身子,这就关乎到一个制造工序的问题。其实建造者模式和工厂模式是很接近的,但是,建造者模式提供了一个更加细粒度的对象的建造过程。对应的UML图如下:


[img]http://dl.iteye.com/upload/attachment/0077/9640/98473c79-fc37-38d7-acbc-709797156ef0.png[/img]


首先,我们要先创建一个需要建造的对象。

//要构造的对象
public class Robust {
String head;
String body;
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}


}

然后有一个构造者的接口,其中包括了建造者会使用的建造过程。

public interface Builder {

public void buidBody(String body);
public void voidHead(String head);
public Robust getRobust();
}


public class RobustBuilder implements Builder {

Robust robust = new Robust();


@Override
public void buidBody(String body) {
// TODO Auto-generated method stub
robust.setBody(body);
}

@Override
public void voidHead(String head) {
// TODO Auto-generated method stub
robust.setHead(head);
}

@Override
public Robust getRobust() {
// TODO Auto-generated method stub
return robust;
}


}

有了建造者之后,需要有一个指挥家来指示建造的过程。

//指挥建造的类
public class Director {

public Robust Construct(Builder builder){
builder.buidBody(null);
builder.buidBody(null);
return builder.getRobust();
}
}

这样,我们只要构造不同的构造者,就会有不同的建造过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值