适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构性模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立或者不兼容的接口功能。
比如你的运动手表本来只支持走路功能,而现在研发了一个跑步的功能,不可能将原有的产品重新设计,而是通过适配器将一个接口转换为另一个接口。
- 意图
适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
- 主要解决
在软件系统中,常常要将一些“现存的对象” 放在新的环境中,而新环境要求的接口是现对象不能满足的。
- 何时使用
系统需要使用现有的类,而类的接口不符合系统的需求
- 如何解决
继承或者依赖
- 关键代码
适配器继承或依赖已有的对象,实现想要的目标接口。
- 优点
- 可以让任何两个没有关联的类一起运行。
- 提高了类的复用
- 增加了类的透明度
- 灵活性好
- 缺点
过多的使用,不宜与整体的把握
代码实现
旧接口
public interface IWalk {
void walk();
}
新接口
public interface IRun {
void run();
}
新接口实现类
public class RunImpl implements IRun{
@Override
public void run() {
System.out.println("跑的飞快");
}
}
适配器实现新的接口
继承了原有的旧接口,但是具体的动作使新的
public class Adapter implements IWalk{
private IRun run;
public Adapter(IRun run){
this.run = run;
}
@Override
public void walk() {
run.run();
}
}
test代码:
public class Test {
public static void main(String[] args) {
IWalk walk = new Adapter(new RunImpl());
walk.walk();
}
}
结果截图: