1700476438
private static Builder adultBuilder=new AdultSuperManBuilder();
1700476439
1700476440
//未成年超人的建造者
1700476441
1700476442
private static Builder childBuilder=new ChildSuperManBuilder();
1700476443
1700476444
//建造一个成年、会飞行的超人
1700476445
1700476446
public static SuperMan getAdultSuperMan(){
1700476447
1700476448
return adultBuilder.getSuperMan();
1700476449
1700476450
}
1700476451
1700476452
//建造一个未成年、刀枪不入的超人
1700476453
1700476454
public static SuperMan getChildSuperMan(){
1700476455
1700476456
return childBuilder.getSuperMan();
1700476457
1700476458
}
1700476459
1700476460
}
1700476461
1700476462
这很简单,不多说了!看看场景类是如何调用的,如代码清单30-11所示。
1700476463
1700476464
代码清单30-11 场景类
1700476465
1700476466
public class Client{
1700476467
1700476468
public static void main(String[]args){
1700476469
1700476470
//建造一个成年超人
1700476471
1700476472
SuperMan adultSuperMan=Director.getAdultSuperMan();
1700476473
1700476474
//展示一下超人的信息
1700476475
1700476476
adultSuperMan.getSpecialTalent();
1700476477
1700476478
}
1700476479
1700476480
}
1700476481
1700476482
这个场景类的写法与工厂方法模式是相同的,但是你可以看到,在建立超人的过程中,建造者必须关注超人的各个部件,而工厂方法模式则只关注超人的整体,这就是两者的区别。
1700476483
1700476484
1700476485
1700476486
1700476487
设计模式之禅 30.1.3 最佳实践
[
上一页 ]
[ :1.700476438e+09 ]
[
下一页 ]