打字猴:1.700476424e+09
1700476424 return super.superMan;
1700476425
1700476426 }
1700476427
1700476428 }
1700476429
1700476430 大家注意看我们这两个具体的建造者,它们都关注了产品的各个部分,在某些应用场景下甚至会关心产品的构建顺序,即使是相同的部件,装配顺序不同,产生的结果也不同,这也正是建造者模式的意图:通过不同的部件、不同装配产生不同的复杂对象。我们再来看导演类,如代码清单30-10所示。
1700476431
1700476432 代码清单30-10 导演类
1700476433
1700476434 public class Director{
1700476435
1700476436 //两个建造者的应用
1700476437
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
[ 上一页 ]  [ :1.700476424e+09 ]  [ 下一页 ]