• [原创]适配器模式(java版)


    什么是适配器模式?

             将一个类的接口转换成客户希望的另外一个接口,使原来由于不兼容而不能一起工作的类可以一起工作。

    什么场景下使用适配器模式?

             比如我们要复用早期的一些代码或者第三方库或者别人维护的代码的时候,但这些代码提供的接口和我们此时的使用环境不兼容,我们又不能去修改这些代码,于是就需要使用适配器去适配这些接口以方便使用。

             使用一个已经存在的类,但如果它的方法和你的要求不相同时,就应该考虑用适配器模式。

             注意:适配器模式在详细设计阶段(开发阶段)不要考虑它,这个是维护或者扩展已有功能系统才需要考虑使用的。

    适配器模式主要包括两种类型:

             类适配器模式和对象适配器模式。

    类适配器模式:

            

             类适配器是通过继承被适配接口的实现类和实现目标接口来创建的。这样可以把该适配器作为一个目标接口的实现类,又可以在该实现类中调用被适配接口的方法。从而达到适配的目的。

    例子:

    //目标角色

    public interface  Target{

             public void request();

    }

    //源角色

    public class Adaptee{

             //原有的业务

             public void doSomething(){

                      System.out.println("a b c ");

             }

    }

    //适配器角色

    public class  Adapter extends Adaptee implements Target{

             public void request(){

                       super.doSomething();

             }

    }

    对象适配器模式:

     

             通过在适配器类的内部包装一个被适配的类对象,从而把源接口转换成目标接口,其中适配器类时目标类的子类或者实现。

    例子:

    //目标角色

    public interface  Target{

             public void request();

    }

    //源角色

    public class Adaptee{

             //原有的业务

             public void doSomething(){

                      System.out.println("a b c ");

             }

    }

    //适配器角色

    public class  Adapter  implements Target{

             private Adaptee adaptee = new Adaptee();

             public void request(){

                       adaptee.doSomething();

             }

    }

    对象适配器和类适配器的区别:

    类适配器是类间继承,但由于java中不允许多继承,因此当需要适配多个类的时候,我们使用对象适配器,对象适配器是对象的合成关系或者说是类的关联关系,这是二者的根本区别。

  • 相关阅读:
    项目管理和项目群管理的区别
    项目群管理
    PRINCE2如何完善PMBOK和您的PMP资格证书?
    为什么需要prince2项目管理方法论?
    PMP和PRINCE2到底有什么区别?哪个含金量更高?
    同步和异步
    Promise理解
    async和await实现异步的同步等待
    Mysql数据库操作基础步骤
    PHP和javascript区别
  • 原文地址:https://www.cnblogs.com/lordcheng/p/7298358.html
Copyright © 2020-2023  润新知