让原本接口不兼容的类可以兼容
? 被适配的类不满足现有类的需要,需要定义一个接口,让适配器来继承被适配者和接口(接口定义了转换的方法),适配器来实现接口的方法,现有类需要使用到被适配者的时候,需要传入一个接口类对象,然后使用接口类的子类(适配器类),调用适配器对象的转换方法,实现转换
1、由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。 2、src类的方法在Adapter中都会暴露出来,增加了使用的成本
在类适配器上加以修改,不再继承src,而是持有src类的实例,解决兼容问题
在系统中尽量使用关联关系来代替继承关系
3. 对象适配器是适配器模式中常用的一种
通过adapter中的构造器传入一个被适配类的对象
缺省适配器模式
优点:1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性好(Adapter),重写了src的方法。
缺点: 1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。
使用场景:有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。
注意事项:适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。
原文:https://www.cnblogs.com/lovestart/p/11253068.html