adapter适配器模式,目的在于扩展。是在原系统上进行扩展时用到的方法。
adapter适配器模式,个人认为在其名前加两个字,命名为接口适配模式。其用意是在保留原有类的前提下(即不改变原来的代码)把一个类的接口转换另一个接口,这样可以让具有不同接口的(原本接口不匹配的)多个类可以一起工作。而如果没有这样的转换,将不能使用到新的类提供的服务。
适配器可分为类适配器和对象适配器。
两种方式都实现了原接口或继承了原抽象类;在对新类的方法的重写的方式上,它们采用的方法不同,类适配器只要覆盖就行了,而对象适配则要过封装。
在一个软件系统中,有时候使用了大量的接口,例如一个javaEE系统,DAO实现类要实现DAO接口,其中一个原因是为了扩展作准备的。
===============类适配器===============
public interface MyInterface{//原接口
public boolean func(String str);
}
public class Object implements MyInterface{//原接口的实现类
public boolean func(String str){/*...*/}
}
public class NewObject {//新类
public boolean myfunc(String str){/*...*/}
}
public class NewChild extends NewObject{//新类的子类
}
public class Adapter extends NewObject implements MyInterface{//适配器,被设计为新类的子类
public boolean func(String str){
return myfunc(str);
}
}
类适配器基于继承的概念,适配器被设计为新类的一个子类的形式;类适配器是通过接口方式进行适配;适配器类在内部调用它继承来的一个新类的方法;只能于对新类的方法进行适配,不能用于对新类的子类进行适配,这是因为适配器在创建的时候就已经与新类静态地联系在一起了;由于继承的原故用户对象将能够知道新类的方法某些信息。
===============对象适配器===============
public abstract calss MyAbstract{//抽象类
public boolean func(String str);
}
class Object extends MyAbstract{//抽象类的子类
public boolean func(String str){/*...*/}
}
class NewObject {//新类
public boolean myfunc(String str){/*...*/}
}
public class Adapter extends MyAbstract{//适配器,可以适配新类的若干个子类
private NewObject obj;
public void setObj(NewObject obj){this.obj=obj;}
public boolean func(String str){
if(this.obj==null)return false;
return obj.myfunc(str);
}
}
对象适配使用对象组合的思想,它拥有新对象的一个引用。对于对象适配器,原接口或者原抽象类都是适应的;要对新类的子类进行适配也是适应的;对象适配器将通过它拥有的新实例的引用调用一个合适的新方法;由于组合的原故用户对象与新类是完全隔绝的,只有适配器知道新类的接口;可以适配新类的若干个子类。
分享到:
相关推荐
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于解决系统间的兼容性问题,尤其是当我们需要将一个已有的类库或者对象与我们的系统接口相匹配时。汽车适配器的...
C#面向对象设计模式 Adapter 适配器模式 视频讲座下载
C#面向对象设计模式纵横谈(7):Adapter 适配器模式(结构型模式) 体验课程
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第7节:结构型模式Adapter 适配器模式
适配器模式是一种在软件设计中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在C#编程环境中,适配器模式扮演着重要的角色,尤其是在需要将已有类库或组件与新系统集成时。适配器模式通过创建一个...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在JavaScript编程中,这种模式尤其适用于处理不同API之间的兼容性问题,比如在AJAX请求中,需要对接不同的日志记录系统,或者整合第三方库时。...
Java设计模式之Adapter适配器模式 Java设计模式之Adapter适配器模式是一种结构型设计模式,主要用于解决不同接口之间的不兼容问题,使得原本由于接口不兼容不能一起工作的那些类可以一起工作。Adapter模式的主要...
适配器模式可以分为类适配器模式和对象适配器模式。在这里,我们将深入探讨适配器模式的概念、实现方式以及在实际开发中的应用。 适配器模式的核心思想是通过创建一个适配器类,该类将被适配者(Adaptee)的接口...
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在已有的类或库,而我们希望使用它们的功能,但其接口与我们的需求不匹配时,适配器模式就显得尤为重要。通过适配器,...
Java 适配器模式是一种设计模式,用于解决不同接口之间兼容性的问题,使得原本由于接口不匹配而不能一起工作的类能够协同工作。适配器模式主要有两类实现方式:类适配器模式和对象适配器模式。 类适配器模式是通过...
适配器模式(Adapter Pattern)是通过创建一个新的对象(适配器),这个对象将原本不兼容的对象接口转换为客户端期望的接口,从而使两者能够协同工作。适配器模式可以分为类适配器和对象适配器两种类型。 1. 类...
在Python编程中,适配器模式是一种非常实用的设计模式,它允许不同的接口或类之间进行交互,即使它们的结构不兼容。适配器模式的主要目的是解决原有类的接口与现有需求之间的冲突,使得原本不能协作的类能够协同工作...
文件列表中的"adapter"可能包含了适配器模式的Java源代码文件,这些文件通常会包含以上提到的三个角色的定义。例如,可能会有`Target.java`(目标接口),`Adaptee.java`(被适配者类),以及`Adapter.java`(类...
适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决系统中的接口不兼容问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。在本文中,我们将深入探讨适配器模式的概念、结构、作用...
适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...
本项目“通用的adapter适配器”旨在提供一个适用于ListView和GridView的多功能适配器,简化了开发者在处理列表或网格视图时的数据绑定工作。下面我们将深入探讨这个通用适配器的核心概念、实现方式以及它在实际开发...
2. 适配器(Adapter)类:这是适配器模式的核心,它实现了目标接口,并持有对适配者对象的引用。适配器类负责将适配者的接口转换为目标接口。 3. 适配者(Adaptee)类:这是需要适配的原始接口或类,它的接口与目标...
适配器模式是软件设计模式中的一种,它主要用于将一个类的接口转换成客户期望的另一个接口。该模式允许原本由于接口不兼容而不能一起工作的类能够协同工作。适配器模式的别名是包装器(wrapper)模式,在JavaScript...
在`DesignMode_Adapter`这个压缩包文件中,可能包含了相关的C++源码示例,演示了如何创建和使用适配器模式。这些源码可能包括了目标接口、原始接口、适配器类的定义以及客户端如何通过适配器进行调用的示例。通过...