天天小说网

4.2 美女何其多,观点各不同

我们举例来说明接口隔离原则到底对我们提出了什么要求。现在男生对小姑娘的称呼,使用频率最高的应该是“美女”了吧,你在大街上叫一声:“嗨,美女!”估计10个有8个回头,其中包括那位著名的如花。美女的标准各不相同,首先就需要定义一下什么是美女:首先要面貌好看,其次是身材要窈窕,然后要有气质,当然了,这三者各人的排列顺序不一样,总之要成为一名美女就必须具备:面貌、身材和气质,我们用类图体现一下星探(当然,你也可以把自己想象成星探)找美女的过程,如图4-1所示。

图4-1 星探寻找美女的类图

定义了一个IPettyGirl接口,声明所有的美女都应该有goodLooking、niceFigure和great-Temperament,然后又定义了一个抽象类AbstractSearcher,其作用就是搜索美女并显示其信息,只要美女都按照这个规范定义,Searcher(星探)就轻松多了,美女类的实现如代码清单4-1所示。

代码清单4-1 美女类

public interface IPettyGirl {

//要有姣好的面孔

public void goodLooking();

//要有好身材

public void niceFigure();

//要有气质

public void greatTemperament();

美女的标准定义完毕,具体的美女实现类如代码清单4-2所示。

代码清单4-2 美女实现类

public class PettyGirl implements IPettyGirl {

private String name;

//美女都有名字

public PettyGirl(String _name) {

this.name=_name;

//脸蛋漂亮

public void goodLooking() {

System.out.println(this.name + "---脸蛋很漂亮!");

//气质要好

public void greatTemperament() {

System.out.println(this.name + "---气质非常好!");

//身材要好

public void niceFigure() {

System.out.println(this.name + "---身材非常棒!");

通过三个方法,把对美女的要求都定义出来了,按照这个标准,如花姑娘被排除在美女标准之外了。有美女,就有搜索美女的星探,其具体实现如代码清单4-3所示。

代码清单4-3 星探抽象类源代码

public abstract class AbstractSearcher {

protected IPettyGirl pettyGirl;

public AbstractSearcher(IPettyGirl _pettyGirl) {

this.pettyGirl = _pettyGirl;

//搜索美女,列出美女信息

public abstract void show();

星探的实现类就比较简单了,其源代码如代码清单4-4所示。

代码清单4-4 星探类

public class PettyGirl implements IPettyGirl {

private String name;

//美女都有名字

public PettyGirl(String _name) {

this.name=_name;

//脸蛋漂亮

public void goodLooking() {

System.out.println(this.name + "---脸蛋很漂亮!");

//气质要好

public void greatTemperament() {

System.out.println(this.name + "---气质非常好!");

//身材要好

public void niceFigure() {

System.out.println(this.name + "---身材非常棒!");

场景中的两个角色美女和星探都已经出现了,需要写一个场景类来串联起各个角色,场景类的实现如代码清单4-5所示。

代码清单4-5 场景类

public class Client {

//搜索并展示美女信息

public static void main(String[] args) {

//定义一个美女

IPettyGirl yanYan = new PettyGirl("嫣嫣");

AbstractSearcher searcher = new Searcher(yanYan);

searcher.show();

星探搜索美女的运行结果如下所示:

--------美女的信息如下:-----

更多内容加载中...请稍候...

若您看到此段落,代表章节内容加载失败,请关闭浏览器的阅读模式、畅读模式、小说模式,以及关闭广告屏蔽功能,或复制网址到其他浏览器阅读!