概述
关注我的公众号:Java编程中心。回复学习资料,无套路获取Java免费学习视频。
建造者模式属于对象的创建模式。它是较为复杂的创建模型模式,它将客户端与包含多个组成部分的复杂对象的内部组成部分与装配方式,只要知道所所需构建者的类型即可。可以将一个产品的内部表象(属性)与产品的生成过程分隔开来,从而使一个建造过程生成具有不同的内部表象的产品对象。在大部分情况下都可以使用new关键字或者工厂模式来创建对象,但是有些对象却比较复杂,比如一些旅游套票可以分为:普通成年人、退休老人、半票有座小孩、免费无座小孩、军人及其家属等,他们有不同的规定和优惠。如果通过new或者工厂模式来创建对象会造成不便,因为所需的参数太多,对象也很复杂。显然构建套票所需的数据异常复杂,导致套票对象的构建难以进行。为了处理这个问题,Builder模式出现了。Builder模式是一种分布构建对象的模式,仍然以旅游票为例,既然一次性构建套票对象有困难,那么久分布完成:
第一步:构建普通成年人票
第二步:构建退休老人票
第三步:构建半票有座小孩
第四步:构建免费无座小孩
第五步:构建军人及其家属等
Builder模式实例
- 首先,创建一个TicketHelper对象,它是配置类,能帮我们一步一步完成构建对象,如下所示:
//TicketHelper.java
public class TicketHelper {
public void builAdult(String info){
System.out.println("构建成人票逻辑:"+“info”);
}
public void builAdult(String info){
System.out.println("构建退休老人逻辑:"+“info”);
}
public void builAdult(String info){
System.out.println("构建半票有座小孩逻辑:"+“info”);
}
public void builAdult(String info){
System.out.println("构建免费无座小孩逻辑:"+“info”);
}
public void builAdult(String info){
System.out.println("构建军人及其家属等逻辑:"+“info”);
}
}
这里只是模拟,所以用打印信息代替真实的逻辑,但这样并不会带来理解上的困难。然后,需要构建类-TicketBuilder,如下所示:
//TicketBuilder.java
class TicketBuilder{
public static Object builder(TicketHelper helper){
System.out.println("通过TicketHelper构建套票信息");
return null;
}
}
显然Builder方法很简单,它只有一个配置类的参数,通过他就可以得到所有套票的信息,从而构建套票对象。有了这两个类,可以使用以下代码来完成套票对象的构建。
构建套票对象:
TicketHelper helper=new TicketHelper();
helper.buildAdult("成人票");
helper.buildChildrenForSeat("有座儿童票");
helper.buildChildrenNoSeat("无座儿童票");
helper.buildElderly("老人票");
helper.buildSoldier("军人票");
Object ticket=Ticketbuilder.builder(Helper);
}
** 这就是构建模式的使用,构建分成若干步,通过一步步构建信息,把一个复杂的对象构建出来。**
总结:
设计模式比较抽象,尤其对于初学者来说,理解更是困难的,建议读者多动手。代码都是可以运行的,按着思路,一步步做下去,慢慢理解他们,只看不写代码的人永远也学不会。