• 设计模式学习(五) 适配器模式


    结构型模式:

    ---  核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题

    ---  分类:

      适配器模式,代理模式,桥接模式,装饰模式,组合模式,外观模式,享元模式


     适配器模式:

    原理:

    -- 将一个类接口转换成客户希望的另外一个接口。

    优点:

    Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以在一起工作

    模式中的角色:

    • 目标接口(Target): 客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口
    • 需要适配的类(Adaptee):需要适配的类或者适配者类
    • 适配器(Adapter):通过包装一个需要适配的对象。把原接口转换成目标接口

    实现方式:

    1:类适配器:

    package com.lp.adpater;
    
    public class Adapter extends Adaptee implements Target  {
    
        @Override
        public void handleReq() {
            super.request();
        }
    
    }
    类适配器

    2:对象适配器:

    package com.lp.adpater;
    
    public class Adaptee {
        public void request(){
            System.out.println("可以完成客户需要的功能");
        }
    }
    需要适配的类
    package com.lp.adpater;
    
    public interface Target {
        void handleReq();
    }
    目标接口
    package com.lp.adpater;
    
    public class Adapter implements Target  {
    
        private Adaptee adaptee;
        @Override
        public void handleReq() {
            adaptee.request();
        }
        public Adapter(Adaptee adaptee) {
            super();
            this.adaptee = adaptee;
        }
        
    }
    适配器
    package com.lp.adpater;
    
    //客户端类
    //相当于一个笔记本电脑,只有usb接口
    public class Client {
    
        public void test1(Target t){
            t.handleReq();
        }
        public static void main(String[] arg){
            
            Client c = new Client();
            Adaptee a = new Adaptee();
            Target t = new Adapter(a);
            c.test1(t);
        }
        
    }
    客户端

    工作中的场景:

    --  经常用来做旧系统改造和升级

    --  如果我们的系统开发之后再也不需要维护,那么很多模式都是没必要的,但是不幸的是,事实却是维护一个系统的代价往往是开发一个系统的数倍

    学习中的场景用到适配器模式的:

    -- java.io.InputStremReader(InputStream)

    -- java.io.OutputStremReader(OutputStream)

  • 相关阅读:
    linux开机启动服务配置
    流媒体服务器配置安装SRS及nginx+rtmp
    WEBRTC配置安装
    linux操作20200825
    转载流媒体服务器相关收藏
    RabbitMQ中间件使用
    如何查找删除指定进程
    硬件接口,串行比并行快的原因
    JavaBean+jsp开发模式 --结合form表单 实例
    session会话
  • 原文地址:https://www.cnblogs.com/lipeng0824/p/4423644.html
Copyright © 2020-2023  润新知