zoukankan      html  css  js  c++  java
  • 适配器模式【java版】

    使用场景: 接口转换

    一、对象适配器优先选用

    优选的原因:多用聚合,少用继承

    原始接口类:

    public class Adaptee {

    public void standardRequest(){

    System.out.println("这是原始标准接口!");

    }
    }

    目标接口:

    public interface Target {

    public void newRequest();

    }

    适配器类:

    //聚合的方式,适配器类中“原始接口对象”作为其成员对象
    public class Adapter implements Target {

    public Adapter(Adaptee apt){
    this.apt=apt;
    }

    //实现新接口中的方法
    public void newRequest() {
    System.out.println("调用老接口之前进行一些预处理");
    this.apt.standardRequest();//开始调用老接口

    }

    private Adaptee apt=null;

    }

    测试:

    public class Main {

    public static void main(String[] args) {
    System.out.println("测试对象适配器。。。");

    //创建“原始接口类对象”和“适配器对象”
    Adaptee theAdaptee=new Adaptee();
    Target theTarget=new Adapter(theAdaptee);

    //调用新接口
    theTarget.newRequest();
    }

    }

    运行结果:

    二、类适配器

    原始接口类:

    public class Adaptee {

    public void standardRequest(){

    System.out.println("这是原始标准接口!");

    }
    }

    目标接口:

    public interface Target {

    public void newRequest();

    }

    适配器类:

    //继承的方式,“原始接口类”中的方法通过继承得到,并在新接口的方法中被调用
    public class Adapter extends Adaptee implements Target {

    //实现新接口中的方法
    public void newRequest() {
    System.out.println("调用老接口之前进行一些预处理");
    super.standardRequest();
    }

    }

    测试:

    public class Main {

    public static void main(String[] args) {
    System.out.println("测试类适配器");

    //创建适配器对象
    Target theTarget=new Adapter();

    //调用新接口
    theTarget.newRequest();

    }

    }

    运行结果:



  • 相关阅读:
    C#委托 delegate
    认识反射
    【译】修改大XML文件的有效方法
    学习javascript并解读JQuery
    ASP.Net用户验证的实现
    渴望
    C++中常见的一些小问题总结(一)
    struts2:关于EL能够获得action的属性
    排序算法总结
    WebService开发实例
  • 原文地址:https://www.cnblogs.com/edisonfeng/p/2294115.html
Copyright © 2011-2022 走看看