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

    }

    }

    运行结果:



  • 相关阅读:
    数据库事务的四大特性
    Mysql数据库的慢sql优化步骤
    数据库事务的4大隔离级别
    mysql的命令练习
    通过jedis对redis客户端的一些基本操作
    通过jedisPool写一个redis连接池
    jedis
    maven将本地jar包添加到本地仓库
    [Django学习] Django基础(7)_分类统计
    [Django学习] Django基础(6)_Field lookups
  • 原文地址:https://www.cnblogs.com/edisonfeng/p/2294115.html
Copyright © 2011-2022 走看看