打字猴:1.70045719e+09
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 ]  [ 下一页 ]