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);
        }
    }
    
    
  • 相关阅读:
    系统综合实践_5
    系统综合实践_4
    系统综合实践_3
    系统综合实践_2
    系统综合实践_1
    软件工程17—第09组 Beta版本演示
    软件工程16—第09组 Beta冲刺(4/4)
    软工实践个人总结
    第06组 Beta版本演示
    第06组 Beta冲刺(5/5)
  • 原文地址:https://www.cnblogs.com/ghlz/p/13574513.html
Copyright © 2011-2022 走看看