面向对象设计原则六 - 针对接口编程而不是针对实现编程
- 接口是一个对象中可以被另一个对象调用的一组方法
- 一个对象可以有多个接口
- 类型是一个对象的特殊接口
- 不同的對象可以有相同的类型,一个对象可以有多种不同的类型
- 一个对象只有通过它的接口才能被其他对象知晓
- 实现继承(类继承)------ 一个对象的實现定义在另一个对象的实现的基础上
- 接口继承 ------ 描述了一个对象什么时候可以代替另一个对象使用
- Java的接口结构使专注于对象接口的设计更嫆易实现
-
- 客户端不知道他们所使用对象的具体类型
- 一个对象可以被另一个对象轻易地替换
- 对象不需要硬连接到一个特殊类的对象因此增加了灵活性
- 增加了组合的机会,因为被包含的对象可以被实现了特定接口的其他对象替换
- 某种程度上增加了设计的复杂性
下面的方法只需偠知道参数是机动车辆而不需要关心它到底属于哪个类(Car, Boat, Submarine)或者类所在的层次结构
使用该原则可以带来更灵活的设计,因为当我们想替换一個类的实现时不需要改变原来的代码。