zoukankan      html  css  js  c++  java
  • 适配器模式(Adapter Pattern)

    定义:
     
    适配器模式,即定义一个包装类,用于包装不兼容接口的对象
     
    解决的问题:
     
    原本由于接口不兼容而不能一起工作的那些类可以在一起工作
     
    类别:
     
    类的适配器模式和对象的适配器模式
     
    uml类图:
     
     模式组成
    • 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口
    • 需要适配的类(Adaptee):需要适配的类或适配者类
    • 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口
     
    优点:
    • 更好的复用性
    系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。
    • 透明、简单
    客户端可以调用同一接口,因而对客户端来说是透明的。这样做更简单 & 更直接
    • 更好的扩展性
    在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。
    • 解耦性
    将目标类和适配者类解耦,通过引入一个适配器类重用现有的适配者类,而无需修改原有代码
    • 符合开放-关闭原则
    同一个适配器可以把适配者类和它的子类都适配到目标接口;可以为不同的目标接口实现不同的适配器,而不需要修改待适配类
     
    缺点:
     
    • 过多的使用适配器,会让系统非常零乱,不易整体进行把握
     
    举个栗子
     
    定义目标接口
    interface Target {
        public void request();
    }

    定义需要适配的类

    class Adaptee {
        public void specificRequest() {
        }
    }

    定义适配器

    class Adatper implements Target {
        private Adaptee ad;
    
        @Override
        public void request() {
            ad.specificRequest();
        }
    }

    客户端调用

    Target t = new Adatper();
    t.request();
  • 相关阅读:
    【MySQL 5.7 Reference Manual】15.4.2 Change Buffer(变更缓冲)
    从MySQL slave system lock延迟说开去
    一文搞懂Raft算法
    Relinking Oracle Home FAQ ( Frequently Asked Questions) (Doc ID 1467060.1)
    Oracle 单实例 Relink Binary Options 说明
    oracle upgrade best pratics
    sysbench安装、使用、结果解读
    Linux 进程管理之四大名捕
    iOS 严重问题解释(crash)
    iOS 图片剪切和压缩的几个方法
  • 原文地址:https://www.cnblogs.com/amei0/p/8059321.html
Copyright © 2011-2022 走看看