1700476273
1700476274
注意 通过工厂方法模式生产出对象,然后由客户端进行对象的其他操作,但是并不代表所有生产出的对象都必须具有相同的状态和行为,它是由产品所决定。
1700476275
1700476276
1700476277
1700476278
1700476279
设计模式之禅 30.1.2 按建造者模式建造超人
1700476280
1700476281
我们再来看看建造者模式是如何生产超人的,如图30-2所示。
1700476282
1700476283
1700476284
1700476285
1700476286
图30-2 按建造者模式生产超人
1700476287
1700476288
又是一个典型的建造者模式!哎,不对呀!通用模式上抽象建造者与产品类没有关系呀!是的,我们当然可以加强了,我们在抽象建造者上使用了模板方法模式,每一个建造者都必须返回一个产品,但是产品是如何制造的,则由各个建造者自己负责。我们来看看程序,先看产品类,如代码清单30-6所示。
1700476289
1700476290
代码清单30-6 超人产品
1700476291
1700476292
public class SuperMan{
1700476293
1700476294
//超人的躯体
1700476295
1700476296
private String body;
1700476297
1700476298
//超人的特殊技能
1700476299
1700476300
private String specialTalent;
1700476301
1700476302
//超人的标志
1700476303
1700476304
private String specialSymbol;
1700476305
1700476306
public String getBody(){
1700476307
1700476308
return body;
1700476309
1700476310
}
1700476311
1700476312
public void setBody(String body){
1700476313
1700476314
this.body=body;
1700476315
1700476316
}
1700476317
1700476318
public String getSpecialTalent(){
1700476319
1700476320
return specialTalent;
1700476321
1700476322
}
[
上一页 ]
[ :1.700476273e+09 ]
[
下一页 ]