Welcome

首页 / 软件开发 / 数据结构与算法 / 设计模式学习:接口隔离原则

设计模式学习:接口隔离原则2016-02-23

对接口的理解

这里的接口,不是java语言内部的interface的意思,在这里,可以将接口理解为一个类提供的所有的方法的特征集合,通俗点说就是所有可见方法和可见变量(java的说法, c++的说法是可见函数和可见属性元素)。

接口隔离原则的定义:

一个类对于另一个类的依赖应当建立在最小的接口上,不应当依赖一些不需要的接口。

从实例中来体会定义。假设我们有两个学生类,文科生和理科生,他们需要考试,我们把考试抽象出一个接口,让不同的实现类来实现。如下图一所示:

图一

从上面的设计中,我们用代码实现

/** * 考试抽象类 ** @author zhonghuan */interface Exam{public void chinese();// 考语文public void math();// 考数学public void physics();// 考物理public void geolography();// 考地理}/** * 文科生实现考试抽象类,文科生不考物理 ** @author zhonghuan */class ExamForLiberalArtStu implements Exam{public void chinese(){System.out.println("考语文");}public void math(){System.out.println("考数学");}public void physics(){// "不考物理", 不用实现, 没有意义}public void geolography(){System.out.println("考地理");}}/** * 理科生实现考试抽象类,理科生不考地理 ** @author zhonghuan */class ExamForScienceStu implements Exam{public void chinese(){System.out.println("考语文");}public void math(){System.out.println("考数学");}public void physics(){System.out.println("考物理");}public void geolography(){// 理科生不考地理,不用实现没有意义}}
URL地址:http://www.bianceng.cn/Programming/project/201602/49635.htm