Java设计模式--适配器模式
2020-06-04 06:06
429 查看
Java设计模式–适配器模式
-
定义
将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 -
实现
-
1对象适配器模式
public class AdapterTest1 { public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Target target=new Adapter(adaptee); target.output5v(); } } class Adaptee{ public int output220v() { return 220; } } interface Target{ int output5v(); } class Adapter implements Target{ private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee=adaptee; } @Override public int output5v() { // TODO Auto-generated method stub int i=adaptee.output220v(); //一些列转变 System.out.println(String.format("原始电压: %d v ----> 输出电压: %d v", i,5)); return 5; } }
- 2.类的适配器模式
public class AdapterTest2 { public static void main(String[] args) { // TODO Auto-generated method stub Adapter2 adapter2=new Adapter2(); adapter2.output5v(); } } class Adaptee2{ public int output220v() { return 220; } } interface Target2{ int output5v(); } class Adapter2 extends Adaptee implements Target2{ @Override public int output5v() { // TODO Auto-generated method stub int i=output220v(); //一些列转变 System.out.println(String.format("原始电压: %d v ----> 输出电压: %d v", i,5)); return 5; } }
本质上,类的适配器模式用的是继承,而对象的适配器模式用的时组合,但是类的适配器本身会污染接口,不符合迪米特法则(最少知道原则)
- 应用场景
-
1.当你希望使用某些类,但其接口与你的其他代码不兼容时,请使用适配器类 2.当你希望重用几个现有的子类,这些子类缺少一些不能添加到超类中的公共功能时,请使用该模式
- 优点
-
1.符合单一职责原则 2.符合开闭原则
- 源码的应用
-
JDK: java.util.Arrays#asList() java.util.Collections#list() Spring: org.springframework.context.event.GenericApplictionListenerAdapter
相关文章推荐
- 深入浅出Java设计模式之适配器模式
- Java设计模式 - Adapter(适配器模式)
- 一起学java设计模式--适配器模式(结构型模式)
- java 设计模式之一 适配器模式 adapter
- Java设计模式之适配器模式和外观模式
- 设计模式学习笔记--设计模式在Java I/O中的应用(装饰模式和适配器模式)
- java设计模式---适配器模式
- Java设计模式之------(Adapter)适配器模式实现
- 设计模式(六)----- 适配器模式(Adapter)----(JAVA版)
- Java设计模式之十六(适配器模式)
- JAVA 设计模式-适配器模式
- Java设计模式之适配器模式(Adapter Pattern)
- Java设计模式----初识适配器模式
- java 设计模式学习笔记(13) - 适配器模式
- 浅谈 java 设计模式--适配器模式(Adaptor pattern)
- java设计模式——适配器模式(Adapter)
- 设计模式--结构模式--适配器模式--Java
- Java设计模式二十:适配器模式(Adapter)
- java学习之路--设计模式--适配器模式