ISP的定义
- 首先明确接口定义
- 实例接口
- 我们在Java中,一个类用New关键字来创建一个实例。抛开Java语言我们其实也可以称为接口。假设Person zhangsan = new Person();我们称Person类就是张三的接口类。
- 类接口
- Java中用interface定义的接口。
- 实例接口
- 其次明确隔离定义
- 客户端不应该依赖他不需要的接口。
- 类间的依赖关系应当建立在最小的接口上。
- 首先第一种说明客户端依赖接口,依赖的接口不能过于臃肿,所以要进行细化。第二种定义也是要求接口进行细化,保持接口的纯洁。
- 总结:建立单一接口,接口不要过分臃肿。接口要尽量细化,接口中要尽量少。
- 接口隔离原则和单一职责原则
- 明确单一职责原则是按照职责单一,是从业务逻辑角度来看。
- 明确接口隔离原则是要求接口的方法要尽量的少。
ISP举例
聚合关系:空心棱形箭头,全体和部分的关系,与组合关系的区别是:组合关系彼此依靠,缺一不可,而聚合关系彼此之间是可以独立存在的。最明显的例子:人和车,人可以拥有车,但是不是必须的。车与轮子之间的关系:车必须拥有轮子。
- 给出星探寻找美女的类图
-
具体实现代码
-
美女抽象接口:定了美女的标准
package des.ISP;
//美女抽象类public
interface IPrettyGirl {
//较好的面容
public void goodLooking();
//要有好的身材
public void niceFigure();
//要有气质
public void greatTemmperament();
}
- 美女实现类
package des.ISP;
//美女实现类
public class PrettyGirl implements IPrettyGirl {
//名字
private String name;
public PrettyGirl(String name){
this.name = name;
}
@Override
public void goodLooking() {
System.out.println("拥有较好的面貌");
}
@Override
public void niceFigure() {
System.out.println("拥有较好的身材");
}
@Override