1700457870
1700457871
1700457872
1700457873
图9-1 肤色性别坐标图
1700457874
1700457875
产品类分析完毕了,生产的工厂类(八卦炉)该怎么改造呢?只有一个生产设备,要么生产出来的全都是男性,要么都是女性。那不行呀,这么翻天覆地的改造就是为了产生不同性别的人类。有办法了!把目前已经有的生产设备——八卦炉拆开,于是女娲就使用了“八卦复制术”,把原先的八卦炉一个变两个,并且略加修改,就成了女性八卦炉(只生产女性人种)和男性八卦炉(只生产男性人种),于是乎女娲就开始准备生产了,其类图如图9-2所示。
1700457876
1700457877
1700457878
1700457879
1700457880
图9-2 女娲重新生产人类
1700457881
1700457882
这个类图虽然大,但是比较简单。Java的典型类图,一个接口,多个抽象类,然后是N个实现类,每个人种都是一个抽象类,性别是在各个实现类中实现的。特别需要说明的是HumanFactory接口,在这个接口中定义了三个方法,分别用来生产三个不同肤色的人种,也就是我们在图9-1中的Y坐标,它的两个实现类分别是性别,也就是图9-1中的X坐标,通过X坐标(性别)和Y坐标(肤色)唯一确定了一个生产出来的对象。我们来看看相关的实现,Human接口如代码清单9-1所示。
1700457883
1700457884
代码清单9-1 人种接口
1700457885
1700457886
public interface Human{
1700457887
1700457888
//每个人种都有相应的颜色
1700457889
1700457890
public void getColor();
1700457891
1700457892
//人类会说话
1700457893
1700457894
public void talk();
1700457895
1700457896
//每个人都有性别
1700457897
1700457898
public void getSex();
1700457899
1700457900
}
1700457901
1700457902
人种有三个抽象类,负责人种的抽象属性定义:肤色和语言。白色人种、黑色人种、黄色人种分别如代码清单9-2、代码清单9-3、代码清单9-4所示。
1700457903
1700457904
代码清单9-2 白色人种
1700457905
1700457906
public abstract class AbstractWhiteHuman implements Human{
1700457907
1700457908
//白色人种的颜色是白色的
1700457909
1700457910
public void getColor(){
1700457911
1700457912
System.out.println(“白色人种的皮肤颜色是白色的!”);
1700457913
1700457914
}
1700457915
1700457916
//白色人种讲话
1700457917
1700457918
public void talk(){
1700457919
[
上一页 ]
[ :1.70045787e+09 ]
[
下一页 ]