1700455533
1700455534
super.pettyGirl.goodLooking();
1700455535
1700455536
//展示身材
1700455537
1700455538
super.pettyGirl.niceFigure();
1700455539
1700455540
//展示气质
1700455541
1700455542
super.pettyGirl.greatTemperament();
1700455543
1700455544
}
1700455545
1700455546
}
1700455547
1700455548
场景中的两个角色美女和星探都已经出现了,需要写一个场景类来串联起各个角色,场景类的实现如代码清单4-5所示。
1700455549
1700455550
代码清单4-5 场景类
1700455551
1700455552
public class Client{
1700455553
1700455554
//搜索并展示美女信息
1700455555
1700455556
public static void main(String[]args){
1700455557
1700455558
//定义一个美女
1700455559
1700455560
IPettyGirl yanYan=new PettyGirl(“嫣嫣”);
1700455561
1700455562
AbstractSearcher searcher=new Searcher(yanYan);
1700455563
1700455564
searcher.show();
1700455565
1700455566
}
1700455567
1700455568
}
1700455569
1700455570
星探搜索美女的运行结果如下所示:
1700455571
1700455572
––—美女的信息如下:–––––
1700455573
1700455574
嫣嫣–脸蛋很漂亮!
1700455575
1700455576
嫣嫣–身材非常棒!
1700455577
1700455578
嫣嫣–气质非常好!
1700455579
1700455580
星探寻找美女的程序开发完毕了,运行结果也正确。我们回头来想想这个程序有没有问题,思考一下IPettyGirl这个接口,这个接口是否做到了最优化设计?答案是没有,还可以对接口进行优化。
1700455581
1700455582
我们的审美观点都在改变,美女的定义也在变化。唐朝的杨贵妃如果活在现在这个年代非羞愧而死不可,为什么?胖呀!但是胖并不影响她入选中国四大美女,说明当时的审美观与现在是有差异的。当然,随着时代的发展我们的审美观也在变化,当你发现有一个女孩,脸蛋不怎么样,身材也一般般,但是气质非常好,我相信大部分人都会把这样的女孩叫美女,审美素质提升了,就产生了气质型美女,但是我们的接口却定义了美女必须是三者都具备,按照这个标准,气质型美女就不能算美女,那怎么办?可能你要说了,我重新扩展一个美女类,只实现greatTemperament方法,其他两个方法置空,什么都不写,不就可以了吗?聪明,但是行不通!为什么呢?星探AbstractSearcher依赖的是IPettyGirl接口,它有三个方法,你只实现了两个方法,星探的方法是不是要修改?我们上面的程序打印出来的信息少了两条,还让星探怎么去辨别是不是美女呢?
[
上一页 ]
[ :1.700455533e+09 ]
[
下一页 ]