zoukankan      html  css  js  c++  java
  • 适配器模式

    适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使 原本的接口不兼容的类可以一起工作,属于结构型设计模式。

    适配器适用于以下几种业务场景:

    1. 已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。
    2. 适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。有点亡羊补牢的感觉。
    public class AC220 {
        public int outputAC220V(){
            int output = 220;
            System.out.println("输出交流电"+output+"V");
            return output;
        }
    }
    
    public interface DC5 {
        int outputDC5V();
    }
    
    
    /**
     * 电源适配器
     */
    public class PowerAdapter implements DC5 {
        private AC220 ac220;
    
        public PowerAdapter(AC220 ac220) {
            this.ac220 = ac220;
        }
    
        @Override
        public int outputDC5V() {
            int adapterInput = ac220.outputAC220V();
            //变压器...
            int adapterOutput = adapterInput/44;
            System.out.println("使用 PowerAdapter 输入 AC:"+adapterInput+"V"+" 输出DC:"+adapterOutput+"V");
            return adapterOutput;
        }
    }
    
    public class ObjectAdapterTest {
        public static void main(String[] args){
            DC5 dc5 = new PowerAdapter(new AC220());
            dc5.outputDC5V();
        }
    }
    

    适配器模式的优缺点

    • 优点:
    1. 能提高类的透明性和复用,现有的类复用但不需要改变。
    2. 目标类和适配器类解耦,提高程序的扩展性。
    3. 在很多业务场景中符合开闭原则。
    • 缺点:
    1. 适配器编写过程需要全面考虑,可能会增加系统的复杂性。
    2. 增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码变得凌乱。
  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/fly-book/p/12372523.html
Copyright © 2011-2022 走看看