美文网首页
2022-10-05-适配器和外观模式

2022-10-05-适配器和外观模式

作者: 三流之路 | 来源:发表于2022-10-06 10:07 被阅读0次

适配器模式,也是比较熟悉,最近两个系统整合的时候还用到了,不过这次看书,发觉我过去用的都是对象适配器,就是通过构造函数传递要被转换的类。

还有个叫类适配器,继承需要被转换的类。思想是一样,只是这样如果要转换多个,因为 Java 不支持多继承,就只能用构造函数了。再回过头看《Head First 设计模式》,原来也讲了,但是毫无印象,当年大概看到 Java 不能用,就没怎么看。

还有个外观模式(门面模式),和对象适配器很像,用来简化接口,让调用者和具体子类解耦,就是原来外面要做一件事,要调用多个对象的各种方法。

public class Client {
    public void test(A a, B b, C c) {
        a.do1();
        int r = a.do2();
        b.do1();
        b.do2(r);
        c.do();
    }
}

如果很多地方都需要这一套逻辑,一般直接在类内部提取一个方法,如果在许多类里都用,可能写到一个静态方法去了。

而外观模式是写一个专门的类封装

public class ABC {
    A a;
    B b;
    C c;
    public ABC(A a, B b, C c) {
        // 赋值
    }

    public void doSth() {
        a.do1();
        int r = a.do2();
        b.do1();
        b.do2(r);
        c.do();
    }
}

public class Client {
    public void test(A a, B b, C c) {
        ABC abc = new ABC(a, b, c);
        abc.doSth();
    }
}

一定要说出好处,就是封装后,Client 只需要和 ABC 打交道,符合什么最少知识原则之类的。如果要修改 doSth 的调用逻辑,对 Client 透明,ABC 自己修改就行。

但好像也没什么,封装方法同样是这效果。并且如果仅仅是一个地方调用,那都是一样,要修改了,不是修改 Client 就是要修改 ABC,也没省事,而且作为方法内部逻辑,Client 修改也影响不了它自己的其它部分。

看到有一个好处,说是风格问题,这可以接受,Client 的风格可以一致,要修改都到 ABC 去修改,好处还是有的,起码在 ABC 里改比在 Client 里改动看着清爽,因为 ABC 代码逻辑简单。


装饰者是一种包装,是从一个接口的根子上下来,是扩展它兄弟的功能。

适配器也是对类的包装,但是从两个根子上下来,把一个转成另一个。

外观是对类的包装,提供一个方法,封装好了算法流程。

装饰适配器外观.png

相关文章

  • 2022-10-05-适配器和外观模式

    适配器模式,也是比较熟悉,最近两个系统整合的时候还用到了,不过这次看书,发觉我过去用的都是对象适配器,就是通过构造...

  • 设计模式:结构型

    享元模式 (Pools,Message) 代理模式 适配器模式 :类适配器和对象适配器 装饰者模式 外观模式 桥接...

  • 设计模式(java)- 模版方法模式

    之前学习的是适配器模式与外观模式。 对外观模式与适配器模式的理解 适配器模式的意思就是适配,将三孔插座转换为二孔插...

  • 设计模式的分类

    接口型模式 适配器模式 外观模式 组合模式 桥接模式

  • 设计模式(结构型模式)

    适配器模式、 装饰器模式、 代理模式、 外观模式、 桥接模式、 组合模式、 享元模式 适配器模式 即定义一个包装类...

  • 结构模式

    结构型模式包括:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种...

  • 适配器模式和外观模式

    结构型设计模式 适配器模式 简要定义 将一个类的接口,转换成所期望的另一个接口. 适配器模式让原本不相容的类可以合...

  • 适配器模式和外观模式

    适配器模式:将一个类的接口转换成客户期望的另一个接口;让原本不兼容的类可以兼容 外观模式:提供了一个统一的接口,用...

  • 适配器模式和外观模式

    适配器模式,将类的接口转化为想要的接口样式。 外观模式,让对象包装起来,以简化接口。 鸭子## 鸭子,依然是鸭子的...

  • 适配器模式和外观模式

    适配器模式 定义 将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 使用场景 想...

网友评论

      本文标题:2022-10-05-适配器和外观模式

      本文链接:https://www.haomeiwen.com/subject/siemartx.html