• 设计模式整理_适配器模式


      适配器模式将一个类的接口,转化为客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间.

      适配器的设计首先需要实现想转化成的类型接口,接着需要取得要适配的对象引用,可以利用构造器取得这个引用,然后可以用被适配的对象去实现需要实现的类型接口的方法.

      客户使用适配器的过程如下:

      1.客户通过目标接口调用适配器的方法对适配器发出请求.

      2.适配器使用被适配者接口把请求转化为被适配者的一个或多个调用接口.

      3.客户收到调用的结果,但并未察觉这一切是适配器起的转换作用.

      下面是对于适配器模式的示例,其中Book为用户所希望获得的接口,被适配的接口是Paper,适配器是BookAdapter.

      

    //Book为所期望的目标接口
    public interface Book {
        public void getBook();
    }
    class MathBook implements Book/*一个具体的实现类*/{
        public void getBook() {
            System.out.println("I am get a Math book.");
        }
    }
    class BookAdapter implements Book /*一个适配器对象*/{
        Paper paper;    //被适配的接口
        public BookAdapter(Paper paper)/*通过构造将被适配的接口传入适配器*/ {
            super();
            this.paper = paper;
        }
        @Override
        public void getBook() {
            for(int i=0;i<50;i++) {
                paper.getContent();
            }
        }
    }
    /*
     * 需要被适配的接口.
     * */
    public interface Paper {
        public void getContent();
    }
    class APaper implements Paper {
    
        @Override
        public void getContent() {
            System.out.println("get the Content!");
        }
    }
    public class Test {
        public static void main(String[] args) {
            Paper p=new APaper();
            Book book=new MathBook();
            book.getBook();
            Book book2=new BookAdapter(p);    //通过适配器获取所需接口
            book2.getBook();    
        }
    }

      适配器模式的类图如下:

      

  • 相关阅读:
    Windows设置VMware开机自动启动,虚拟机也启动
    PHP中unset,array_splice删除数组中元素的区别
    Linux 出现 E325:ATTENTION swap
    Linux中的info指令
    java创建线程的三种方式——附源码说明
    JVM类加载过程
    java实现责任链模式的小demo
    讲讲java中线程池的实现
    将原型模式和建造者模式结合起来耍一耍
    一个简单的单例模式Demo
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5597467.html
Copyright © 2020-2023  润新知