适配器模式(AdapterPattern, 结构型模式)
用最通俗的讲法就是: 将多个功能相关或不相关的接口( 你需要的接口 )放到同一个实现类里, 构造一个具有多工功能, 多特点的"异类对象"
-
定义
是作为多个接口之间的桥梁,结合多个独立的接口(将多个类/功能结合在一起,构建出一个可以产生需要的对象的适配器) -
角色关系
多个独立的接口及其实现类, 适配器(实现这多个目标接口) -
优点
可以让多个个没有关系的接口/类一起运行, 提高类的复用性, 增加类的灵活性 -
缺点
过多使用适配器造成系统凌乱, 例如:表面上使用A接口,适配器却将A改为B接口,造成接口使用的混乱, 因此如果不是有必要的, 可以不使用适配器, 而是直接对系统重构
由于java单继承, 当适配类的时候, 只能适配一个类(为抽象类);
注: 适配器主要是用与解决正在服役的项目的问题, 不是在类详细设计的时候添加 (使用适配器, 构造出一个我们想要的对象, 解决燃眉之急)
- 实现方式
一般通过适配器继承或者以来已有对象, 实现想要的目标接口
代码演示:
例1
将播放MP4与VCL的播放器进行适配, 构建一个既能播放MP4, 又能放VCL的播放器
package com.AdapterPattern;
/**
* 1、系统需要使用现有的类,而此类的接口不符合系统的需要。
* 2、想要建立一个可以重复使用的类,用于与一