设计模式之适配器模式
1. 模式定义
适配器模式又称包装器模式,属于结构型模式,它可以将一个接口转换成客户希望的另一个接口。适配器模式使接口不兼容的那些类可以一起工作。[1]
-[1] 图说设计模式
2. UML
类图

3. 代码描述
package com.lemon.adapter;
/**
* @author Hello
* @description 被适配对象
* @date 2020-03-08 11:55
*/
public class Adaptee {
public void request() {
System.out.println("do something");
}
}
package com.lemon.adapter;
/**
* @author Hello
* @description 适配器对象
* @date 2020-03-08 11:56
*/
public class Adapter extends Adaptee implements Target{
@Override
public void adapt() {
super.request();
}
}
package com.lemon.adapter;
/**
* @author Hello
* @description 适配接口
* @date 2020-03-08 11:56
*/
public interface Target {
void adapt();
}
package com.lemon.adapter;
/**
* @author Hello
* @description 客户端调用
* @date 2020-03-08 11:58
*/
public class Client {
public void callRequest() {
Target target = new Adapter();
target.adapt();
}
}
4. 总结
适配器模式将目标类与适配者类解耦,通过引入一个适配器类来重用现有的适配者类,而无需修改原有代码。
适配器模式增加了类的透明性和复用性,将具体时间封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性。
灵活性和扩展性都非常好,通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”。
对于不支持多继承的语言来说,适配器模式一次最多只能是配一个适配者类,而且目标类只能为抽象类或接口,使用有一定的局限性,不能将一个适配者类和它的子类都适配到目标接口。[2]
-[2] 图说设计模式
网友评论