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