1700457156
这个造人过程是比较有意思的,是不是可以通过软件开发来实现这个过程呢?古人云:“三人行,必有我师焉”,在面向对象的思维中,万物皆对象,是对象我们就可以通过软件设计来实现。首先对造人过程进行分析,该过程涉及三个对象:女娲、八卦炉、三种不同肤色的人。女娲可以使用场景类Client来表示,八卦炉类似于一个工厂,负责制造生产产品(即人类),三种不同肤色的人,他们都是同一个接口下的不同实现类,都是人嘛,只是肤色、语言不同,对于八卦炉来说都是它生产出的产品。分析完毕,我们就可以画出如图8-1所示的类图。
1700457157
1700457158
类图比较简单,AbstractHumanFactory是一个抽象类,定义了一个八卦炉具有的整体功能,HumanFactory为实现类,完成具体的任务——创建人类;Human接口是人类的总称,其三个实现类分别为三类人种;NvWa类是一个场景类,负责模拟这个场景,执行相关的任务。
1700457159
1700457160
我们定义的每个人种都有两个方法:getColor(获得人的皮肤颜色)和talk(交谈),其源代码如代码清单8-1所示。
1700457161
1700457162
1700457163
1700457164
1700457165
图8-1 女娲造人类图
1700457166
1700457167
代码清单8-1 人类总称
1700457168
1700457169
public interface Human{
1700457170
1700457171
//每个人种的皮肤都有相应的颜色
1700457172
1700457173
public void getColor();
1700457174
1700457175
//人类会说话
1700457176
1700457177
public void talk();
1700457178
1700457179
}
1700457180
1700457181
接口Human是对人类的总称,每个人种都至少具有两个方法,黑色人种、黄色人种、白色人种的代码分别如代码清单8-2、代码清单8-3、代码清单8-4所示。
1700457182
1700457183
代码清单8-2 黑色人种
1700457184
1700457185
public class BlackHuman implements Human{
1700457186
1700457187
public void getColor(){
1700457188
1700457189
System.out.println(“黑色人种的皮肤颜色是黑色的!”);
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(){
[
上一页 ]
[ :1.700457156e+09 ]
[
下一页 ]