1700457190
1700457191
}
1700457192
1700457193
public void talk(){
1700457194
1700457195
System.out.println(“黑人会说话,一般人听不懂。”);
1700457196
1700457197
}
1700457198
1700457199
}
1700457200
1700457201
代码清单8-3黄色人种
1700457202
1700457203
public class YellowHuman implements Human{
1700457204
1700457205
public void getColor(){
1700457206
1700457207
System.out.println(“黄色人种的皮肤颜色是黄色的!”);
1700457208
1700457209
}
1700457210
1700457211
public void talk(){
1700457212
1700457213
System.out.println(“黄色人种会说话,一般说的都是双字节。”);
1700457214
1700457215
}
1700457216
1700457217
}
1700457218
1700457219
代码清单8-4 白色人种
1700457220
1700457221
public class WhiteHuman implements Human{
1700457222
1700457223
public void getColor(){
1700457224
1700457225
System.out.println(“白色人种的皮肤颜色是白色的!”);
1700457226
1700457227
}
1700457228
1700457229
public void talk(){
1700457230
1700457231
System.out.println(“白色人种会说话,一般都是但是单字节。”);
1700457232
1700457233
}
1700457234
1700457235
}
1700457236
1700457237
所有的人种定义完毕,下一步就是定义一个八卦炉,然后烧制人类。我们想象一下,女娲最可能给八卦炉下达什么样的生产命令呢?应该是“给我生产出一个黄色人种(YellowHuman类)”,而不会是“给我生产一个会走、会跑、会说话、皮肤是黄色的人种”,因为这样的命令增加了交流的成本,作为一个生产的管理者,只要知道生产什么就可以了,而不需要事物的具体信息。通过分析,我们发现八卦炉生产人类的方法输入参数类型应该是Human接口的实现类,这也解释了为什么类图上的AbstractHumanFactory抽象类中createHuman方法的参数为Class类型。其源代码如代码清单8-5所示。
1700457238
1700457239
代码清单8-5 抽象人类创建工厂
[
上一页 ]
[ :1.70045719e+09 ]
[
下一页 ]