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
1700476394
super.setBody(“强壮的躯体”);
1700476395
1700476396
super.setSpecialTalent(“会飞行”);
1700476397
1700476398
super.setSpecialSymbol(“胸前带S标记”);
1700476399
1700476400
return super.superMan;
1700476401
1700476402
}
1700476403
1700476404
}
1700476405
1700476406
怎么回事?在第11章中讲解建造者模式的时候在产品中使用了模板方法模式,在这里怎么把模板方法模式迁移到建造者了?怎么会这样?你是不是在发出这样的疑问?别疑问了!设计模式只是提供了一个解决问题的意图:复杂对象的构建与它的表示分离,而没有具体定出一个设计模式必须是这样的实现,必须是这样的代码,灵活运用模式才是其根本,别学死板了。
1700476407
[
上一页 ]
[ :1.700476358e+09 ]
[
下一页 ]