zoukankan      html  css  js  c++  java
  • 设计模式整理_适配器模式

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

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

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

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

      适配器模式的类图如下:

      

  • 相关阅读:
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 k-近邻算法及应用
    实验一 感知器及其应用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    ATM管理系统
    流程图与活动图的区别与联系
    四则运算2
  • 原文地址:https://www.cnblogs.com/hlhdidi/p/5597467.html
Copyright © 2011-2022 走看看