• java 适配器模式(adapter pattern)


    适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配。

    场景:电脑读取内存卡中的内容,内存卡是没有办法直接插在电脑的USB接口上,那就不需要一个转换器。

    下面的例子实现了上述的功能

    /**
     * @author liusongwei
     * @Title: MemoryCard
     * @ProjectName demohystrix
     * @Description: 定义一个内存卡接口
     * @date 2018/12/279:15
     */
    public interface MemoryCard {
        public String novel();
    }
    package com.example.demohystrix.designpattern.structure.adapter;
    
    /**
     * @author liusongwei
     * @Title: MemoryCardImpl
     * @ProjectName demohystrix
     * @Description: 实现内存卡接口并编写内存中的内容
     * @date 2018/12/279:18
     */
    public class MemoryCardImpl implements MemoryCard {
        @Override
        public String novel() {
            System.out.println("开始读取小说中的内容");
            return "盘古开天辟地,名曰《斗鱼》";
        }
    }
    package com.example.demohystrix.designpattern.structure.adapter;
    
    /**
     * @author liusongwei
     * @Title: Computer
     * @ProjectName demohystrix
     * @Description: 定义一个电脑接口
     * @date 2018/12/279:17
     */
    public interface Computer {
        public void read();
    }
    package com.example.demohystrix.designpattern.structure.adapter;
    
    /**
     * @author liusongwei
     * @Title: Adapter
     * @ProjectName demohystrix
     * @Description: 实现一个电脑接口的适配器,并读取内存卡中的内容
     * @date 2018/12/279:20
     */
    public class Adapter implements Computer {
        private MemoryCard memoryCard;
    
        public Adapter(MemoryCard memoryCard){
            this.memoryCard = memoryCard;
        }
        @Override
        public void read() {
            String str = memoryCard.novel();
            System.out.println("读取的内容为:" + str);
        }
    }
    package com.example.demohystrix.designpattern.structure.adapter;
    
    /**
     * @author liusongwei
     * @Title: Demo
     * @ProjectName demohystrix
     * @Description: TODO
     * @date 2018/12/279:22
     */
    public class Demo {
        public static void main(String[] args){
            Computer computer = new Adapter(new MemoryCardImpl());
            computer.read();
        }
    }

    输出内容为:

  • 相关阅读:
    jwplayer播放器停止 单页内多个jwplayer对象停止问题
    jquery.smint.js 页面菜单浮动之谷歌浏览器异常
    jquery获取不到append出来的新元素的解决办法
    Received an invalid response. Origin 'null' is therefore not allowed access
    Java中转UTC时间字符串(含有T Z)为local时间
    OSS 图片处理流程
    java8中的map 和reduce
    MySQL的语句执行顺序
    数据库死锁解决办法
    mysql查询用if控制显示列
  • 原文地址:https://www.cnblogs.com/mutong1228/p/10183318.html
Copyright © 2020-2023  润新知