1700459486
类图看着复杂了,但还是比较简单,我们增加了一个Director类,负责按照指定的顺序生产模型,其中方法说明如下:
1700459487
1700459488
❑getABenzModel方法
1700459489
1700459490
组建出A型号的奔驰车辆模型,其过程为只有启动(start)、停止(stop)方法,其他的引擎声音、喇叭都没有。
1700459491
1700459492
❑getBBenzModel方法
1700459493
1700459494
组建出B型号的奔驰车,其过程为先发动引擎(engine boom),然后启动,再然后停车,没有喇叭。
1700459495
1700459496
❑getCBMWModel方法
1700459497
1700459498
组建出C型号的宝马车,其过程为先喇叭叫一下(alarm),然后启动,再然后是停车,引擎不轰鸣。
1700459499
1700459500
❑getDBMWModel方法
1700459501
1700459502
组建出D型号的宝马车,其过程就一个启动,然后一路跑到黑,永动机,没有停止方法,没有喇叭,没有引擎轰鸣。
1700459503
1700459504
其他的E型号、F型号……可以有很多,启动、停止、喇叭、引擎轰鸣这4个方法在这个类中可以随意的自由组合。Director类如代码清单11-10所示。
1700459505
1700459506
代码清单11-10 导演类
1700459507
1700459508
public class Director{
1700459509
1700459510
private ArrayList<String>sequence=new ArrayList();
1700459511
1700459512
private BenzBuilder benzBuilder=new BenzBuilder();
1700459513
1700459514
private BMWBuilder bmwBuilder=new BMWBuilder();
1700459515
1700459516
/*
1700459517
1700459518
*A类型的奔驰车模型,先start,然后stop,其他什么引擎了,喇叭一概没有
1700459519
1700459520
*/
1700459521
1700459522
public BenzModel getABenzModel(){
1700459523
1700459524
//清理场景,这里是一些初级程序员不注意的地方
1700459525
1700459526
this.sequence.clear();
1700459527
1700459528
//这只ABenzModel的执行顺序
1700459529
1700459530
this.sequence.add(“start”);
1700459531
1700459532
this.sequence.add(“stop”);
1700459533
1700459534
//按照顺序返回一个奔驰车
1700459535
[
上一页 ]
[ :1.700459486e+09 ]
[
下一页 ]