java的适配器模式怎么实现

发布时间:2021-11-30 14:38:10 作者:iii
来源:亿速云 阅读:202

本篇内容介绍了“java的适配器模式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、模式动机

二、模式定义

适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。

三、模式结构

适配器模式包含如下角色:

适配器模式有对象适配器和类适配器两种实现:

3.1、对象适配器

java的适配器模式怎么实现

image

3.2、类适配器

java的适配器模式怎么实现

image

四、代码分析

4.1、对象适配器代码实现

public interface Target {    
   void sampleOperation1();    
      void sampleOperation2(); }
     
public class Adaptee {    
    public void sampleOperation1() {        System.out.println("sampleOperation1");    } }

public class Adapter implements Target {    
    private Adaptee mAdaptee;    
    public Adapter(Adaptee adaptee) {        mAdaptee = adaptee;    }    
   
   @Override    public void sampleOperation1() {        mAdaptee.sampleOperation1();    }    
   
   @Override    public void sampleOperation2() {        System.out.println("sampleOperation2");    } }
   
public class MyClass {    
    public static void main(String[] args) {        Adapter adapter =new Adapter(new Adaptee());        adapter.sampleOperation1();        adapter.sampleOperation2();    } }

输出内容为:

sampleOperation1
sampleOperation2

4.2、类适配器代码实现

public interface Target {    
   void sampleOperation1();    
   void sampleOperation2(); }
       
public class Adaptee {    
   public void sampleOperation1() {        System.out.println("sampleOperation1");    } }
   
public class Adapter extends Adaptee implements Target {    
   
   @Override    public void sampleOperation2() {        System.out.println("sampleOperation2");    } }
   
public class MyClass {    

public static void main(String[] args) {        Target adapter = new Adapter();        adapter.sampleOperation1();        adapter.sampleOperation2();    } }

输出内容为:

sampleOperation1
sampleOperation2

五、优点

类适配器模式还具有如下优点:

由于适配器类是适配者类的子类,因此可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。

对象适配器模式还具有如下优点:

一个对象适配器可以把多个不同的适配者适配到同一个目标,也就是说,同一个适配器可以把适配者类和它的子类都适配到目标接口。

六、缺点

类适配器模式的缺点如下:

对于Java、C#等不支持多重继承的语言,一次最多只能适配一个适配者类,而且目标抽象类只能为抽象类,不能为具体类,其使用有一定的局限性,不能将一个适配者类和它的子类都适配到目标接口。

对象适配器模式的缺点如下:

与类适配器模式相比,要想置换适配者类的方法就不容易。如果一定要置换掉适配者类的一个或多个方法,就只好先做一个适配者类的子类,将适配者类的方法置换掉,然后再把适配者类的子类当做真正的适配者进行适配,实现过程较为复杂。

七、适用环境

在以下情况下可以使用适配器模式:

八、模式应用

Sun公司在1996年公开了Java语言的数据库连接工具JDBC,JDBC使得Java语言程序能够与数据库连接,并使用SQL语言来查询和操作数据。JDBC给出一个客户端通用的抽象接口,每一个具体数据库引擎(如SQL Server、Oracle、MySQL等)的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器软件。抽象的JDBC接口和各个数据库引擎API之间都需要相应的适配器软件,这就是为各个不同数据库引擎准备的驱动程序。

九、模式扩展

认适配器模式(Default Adapter Pattern)或缺省适配器模式

当不需要全部实现接口提供的方法时,可先设计一个抽象类实现接口,并为该接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可有选择地覆盖父类的某些方法来实现需求,它适用于一个接口不想使用其所有的方法的情况。因此也称为单接口适配器模式。

“java的适配器模式怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. 详解Java适配器模式
  2. java适配器模式的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:DM7数据库及其表的备份还原是怎样的

下一篇:C/C++ Qt TreeWidget单层树形组件怎么应用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》