打字猴:1.700476344e+09
1700476344 超人这个产品是由三部分组成:躯体、特殊技能、身份标记,这就类似于电子产品,首先生产出一个固件,然后再安装一个灵魂(软件驱动),最后再打上产品标签。完事了!一个崭新的产品就诞生了!我们的超人也是这样生产的,先生产一个普通的躯体,然后注入特殊技能,最后打上S标签,一个超人生产完毕。我们再来看一下建造者的抽象定义,如代码清单30-7所示。
1700476345
1700476346 代码清单30-7 抽象建造者
1700476347
1700476348 public abstract class Builder{
1700476349
1700476350 //定义一个超人的应用
1700476351
1700476352 protected final SuperMan superMan=new SuperMan();
1700476353
1700476354 //构建出超人的躯体
1700476355
1700476356 public void setBody(String body){
1700476357
1700476358 this.superMan.setBody(body);
1700476359
1700476360 }
1700476361
1700476362 //构建出超人的特殊技能
1700476363
1700476364 public void setSpecialTalent(String st){
1700476365
1700476366 this.superMan.setSpecialTalent(st);
1700476367
1700476368 }
1700476369
1700476370 //构建出超人的特殊标记
1700476371
1700476372 public void setSpecialSymbol(String ss){
1700476373
1700476374 this.superMan.setSpecialSymbol(ss);
1700476375
1700476376 }
1700476377
1700476378 //构建出一个完整的超人
1700476379
1700476380 public abstract SuperMan getSuperMan();
1700476381
1700476382 }
1700476383
1700476384 一个典型的模板方法模式,超人的各个部件(躯体、灵魂、标志)都准备好了,具体怎么组装则是由实现类来决定。我们先来看成年超人,如代码清单30-8所示。
1700476385
1700476386 代码清单30-8 成年超人建造者
1700476387
1700476388 public class AdultSuperManBuilder extends Builder{
1700476389
1700476390 @Override
1700476391
1700476392 public SuperMan getSuperMan(){
1700476393
[ 上一页 ]  [ :1.700476344e+09 ]  [ 下一页 ]