《java与模式》-4 java接口
接口是实现构建可插入性的关键
- 关联的可插入性
- A对象需要完成一个任务,需要知道B对象(属性),A对B就是关联。
- 如果关联不是对类,而是对接口,那么任何一个实现了这个接口的对象都可以,这样我们只需要关心接口,不需要关心实现了。
- 调用的可插入性
- A对象需要调用B对象的方法,这个调用不一定非得要具体的类而是可以是一个接口,任何实现了这个接口的类都可以被当前对象调用。
- 类型
- 应当使用接口或抽象类将软件单位与内部和外部耦合起来。
- 理想情况下一个类应当只实现接口和抽象类中的方法,不应给出多余方法
- 类型等级结构
- 接口一般用来作为一个类型等级结构的起点
- java的类型是以类型等级接口的方式组织起来的,子类型的关系是传递性的
- B是的A子类,C是B的子类,那么C是A的子类。
- 混合类型:一个类有一个主要的超类型,通过实现一个接口可以拥有另一个次要的超类型,这种次要的超类型就叫混合类型;
例:TreeMap具有多个类型:
1.AbstractMap是 主要类型,这是一种java聚集;
2.Cloneable接口则给出一个次要类型,说明这个类可以安全的克隆;
3.Serializable也是一个次要类型,说明这个类可以串行化;
4.NavigableMap,搜索目标返回最接近匹配项的导航方法;
5.NavigableMap继承了SortedMap表明这个类可以排序;
接口的常见用法
- 单方法接口:Runnable、ActionListener;
- 标识接口:Serializable没有任何属性、方法,仅表明它的类型属于一个特定类型,通常用在工具类中;
- 常量接口:错误的用法;