打字猴:1.700476165e+09
1700476165 首先,按照工厂方法模式创建出一个超人,类图如图30-1所示。
1700476166
1700476167
1700476168
1700476169
1700476170 图30-1 按工厂方法建造超人
1700476171
1700476172 类图中我们按照年龄段把超人分为两种类型:成年超人(如克拉克、超能先生)和未成年超人(如Dash、Jack)。这是一个非常正宗的工厂方法模式,定义一个产品的接口,然后再定义两个实现,通过超人制造工厂制造超人。想想看我们对超人最大印象是什么?当然是他的超能力,我们以specialTalent(特殊天赋)方法来代表,先看抽象产品类,如代码清单30-1所示。
1700476173
1700476174 代码清单30-1 超人接口
1700476175
1700476176 public interface ISuperMan{
1700476177
1700476178 //每个超人都有特殊技能
1700476179
1700476180 public void specialTalent();
1700476181
1700476182 }
1700476183
1700476184 产品的接口定义好了,我们再来看具体的产品。先看成年超人,很简单,如代码清单30-2所示。
1700476185
1700476186 代码清单30-2 成年超人
1700476187
1700476188 public class AdultSuperMan implements ISuperMan{
1700476189
1700476190 //超能先生
1700476191
1700476192 public void specialTalent(){
1700476193
1700476194 System.out.println(“超人力大无穷”);
1700476195
1700476196 }
1700476197
1700476198 }
1700476199
1700476200 未成年超人的代码如代码清单30-3所示。
1700476201
1700476202 代码清单30-3 未成年超人
1700476203
1700476204 public class ChildSuperMan implements ISuperMan{
1700476205
1700476206 //超能先生的三个孩子
1700476207
1700476208 public void specialTalent(){
1700476209
1700476210 System.out.println(“小超人的能力是刀枪不入、快速运动”);
1700476211
1700476212 }
1700476213
1700476214 }
[ 上一页 ]  [ :1.700476165e+09 ]  [ 下一页 ]