设计模式 结构型模式 适配器模式
描述
适配器模式属于结构性模式,将适配类的api转化为目标类的api,如mac电脑使用的是typec的接口,连接显示器需要hdmi接口。我们要使用mac连接显示器,需要使用扩展坞,这其实就是适配器模式。
类图
分类
- 类适配
是基于继承实现的 - 对象适配
使用组合方式实现,更加灵活代码
1
2
3
4
5
6public class MacInterface {
public void typeC(){
System.out.println("type 已经连接..");
}
}1
2
3
4
5public interface Monitor {
void hdml();
} - 类适配
1
2
3
4
5
6
7public class ExtendUtil extends MacInterface implements Monitor {
@Override
public void hdml() {
super.typeC();
}
} - 对象适配
1
2
3
4
5
6
7
8
9
10public class ExtendUtilV2 implements Monitor{
private MacInterface macInterface;
public ExtendUtilV2(){
macInterface =new MacInterface();
}
@Override
public void hdml() {
macInterface.typeC();
}
} - 测试代码
1
2
3
4
5
6
7
8
9
10public class Main {
public static void main(String[] args) {
// 类适配模式
ExtendUtil extendUtil =new ExtendUtil();
extendUtil.hdml();
// 对象适配模式
ExtendUtilV2 extendUtilV2 =new ExtendUtilV2();
extendUtilV2.hdml();
}
}
总结
- 优点
- 复用性好,可以适配系统中已经存在的方法,无需重写
- 扩展性好,可以在适配类中添加想要适配的方法
- 缺点
- 系统中一旦适配类变多则导致系统代码混乱。代码晦涩难懂
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment