做教学的视频网站有哪些,做一个网站建设的流程,企业信息网站,网络的推广方式有哪些核心思想
见名知意#xff0c;是作为两个不兼容的接口的桥梁#xff0c;属于结构型模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作
常见的几类适配器
类的适配器模式 想将一个类转换成满足另外一个新接口的类时#xff0c;可以使用类的适配器模式#x…核心思想
见名知意是作为两个不兼容的接口的桥梁属于结构型模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作
常见的几类适配器
类的适配器模式 想将一个类转换成满足另外一个新接口的类时可以使用类的适配器模式创建一个新类继承原有的类实现新的接口即可 对象的适配器模式 想将一个对象转换成满足另外一个接口的对象时可以创建一个适配器类持有原类的一个实例在适配类的方法中调用实例的方法就行 接口的适配器模式 不想实现一个接口中得所有方法时可以创建一个适配器实现所有方法在写别的类的时候继承适配器类即可 场景使用
在使用一些旧系统或者是类库时经常会出现接口不兼容的问题适配器模式在解决这类问题具有优势学习设计模式一定不要局限代码层面要从软件系统整体去考虑,而不是为了使用设计模式而去使用设计模式
优缺点
优点
可以让任何两个没有关联的类一起运行使得原本由于接口不兼容而不能一起工作的那些类一起工作增强灵活度提高复用性适配器可以在多个系统使用符合开闭原则
缺点
整体类的调用链路增加 比如 本来A可以直接调用C使用适配器后是A调用BB再调用C
代码示例类的适配器模式
类图 旧的原始类
public class OldModule {public void methodA(){System.out.println(OldModule methodA);}}新的目标接口
public interface TargetModule {/*** 和需要适配的类方法名一样*/void methodA();/*** 新的方法,如果有多个新的方法直接编写就行*/void methodB();void methodC();}适配器
public class Adapter extends OldModule implements TargetModule {/*** 新的方法和老的类方法不一样*/Overridepublic void methodB() {System.out.println(Adapter methodB);}/*** 新的方法和老的类方法不一样*/Overridepublic void methodC() {System.out.println(Adapter methodC);}}测试
public class AppRun {public static void main(String[] args) {TargetModule targetModule new Adapter();targetModule.methodA();targetModule.methodB();targetModule.methodC();}
}