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);
        }
    }
    
    
  • 相关阅读:
    实验三
    第四次实验
    作业
    第二次实验
    <转>JVM调优
    SQL Server的聚集索引和非聚集索引
    去除DataTable里面重复的数据
    sql server 与 Excel 导入导出
    C#学习笔记 委托和事件
    好多特效
  • 原文地址:https://www.cnblogs.com/ghlz/p/13574513.html
Copyright © 2011-2022 走看看