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();

    }

    }

    运行结果:



  • 相关阅读:
    TSQL 字符串前加 N 是什么意思
    SQL语句修改字段默认值
    Clustering Technologies On Windows Server 2008 R2
    sql 修改列名及表名
    Capture screenshots on Mac 在Mac下截图
    极限编程(XP,eXtreme Programming)
    zookeeper安装(单机版)
    linux备份用户权限
    Dubbo管控台安装(zookeeper单机版)
    linux查看IP
  • 原文地址:https://www.cnblogs.com/edisonfeng/p/2294115.html
Copyright © 2011-2022 走看看