zoukankan      html  css  js  c++  java
  • 设计模式7——适配器模式

    设计模式7——适配器模式

    代码实现:

    package com.ghl.adapter;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Adapter
     * @Date 2020/8/27 20:07
     * @Author gaohengli
     * @Version 1.0
     */
    //适配器模式
    //要被适配的类
    public class Adapter {
    
        public void request(){
            System.out.println("连接网线上网");
        }
    }
    
    
    package com.ghl.adapter;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName NetToUsb
     * @Date 2020/8/27 20:12
     * @Author gaohengli
     * @Version 1.0
     */
    //接口转换器的抽象实现
    public interface NetToUsb {
    
        //作用:处理请求,网线=>USB
        public void handleRequest();
    }
    
    

    类适配器

    package com.ghl.adapter;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName TrueAdapter
     * @Date 2020/8/27 20:14
     * @Author gaohengli
     * @Version 1.0
     */
    //1.继承(类适配器,单继承)
    //2.组合(对象适配器,常用)
    
    //真正的适配器,连接USB,连接网线
    public class TrueAdapter extends Adapter implements NetToUsb{
    
        @Override
        public void handleRequest() {
            super.request();//可以上网了
        }
    }
    
    

    对象适配器

    package com.ghl.adapter;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName TrueAdapter2
     * @Date 2020/8/27 20:31
     * @Author gaohengli
     * @Version 1.0
     */
    
    //2.组合(对象适配器,常用)
    public class TrueAdapter2 implements NetToUsb {
    
        private Adapter adapter;
    
        public TrueAdapter2(Adapter adapter) {
            this.adapter = adapter;
        }
    
        @Override
        public void handleRequest() {
            adapter.request();
        }
    }
    
    
    package com.ghl.adapter;
    
    /**
     * @ProjectName DesignPattern
     * @ClassName Computer
     * @Date 2020/8/27 20:10
     * @Author gaohengli
     * @Version 1.0
     */
    //客户端类:想上网,插不上网线
    public class Computer {
    
        //连接转接口
        public void net(NetToUsb adapter){
            //上网的具体实现,需要一个转接头
            adapter.handleRequest();
        }
    
        public static void main(String[] args) {
            //电脑,适配器,网线
            Computer computer = new Computer();//电脑
    
            Adapter adapter = new Adapter();//网线
            NetToUsb trueAdapter = new TrueAdapter2(adapter);//适配器
    
            computer.net(trueAdapter);
        }
    }
    
    
  • 相关阅读:
    破解VNC密码
    word无法插入页码
    修改windows远程桌面端口号
    系统每次进入桌面报错“由于启动计算机时出现了页面文件配置问题”
    树梅派安装GMChess中国象棋
    Linux命令Top详解
    树梅派修改root密码及切换账户
    树梅派安装截图工具
    Linux有趣的应用,画只小猫陪伴你
    Windows 10访问XP系统共享文件报”因为文件共享不安全,所以你不能连接到文件共享。。。“
  • 原文地址:https://www.cnblogs.com/ghlz/p/13574513.html
Copyright © 2011-2022 走看看