美文网首页
外观模式

外观模式

作者: MrSYLong | 来源:发表于2020-12-16 09:30 被阅读0次
    定义

    外观模式(Facade Pattern):外观模式定义了一个高层接口,为子系统中的一组接口提供一个统一的接口。外观模式又称为门面模式,它是一种结构型设计模式模式。

    定义解读:通过这个高层接口,可以将客户端与子系统解耦:客户端可以不直接访问子系统,而是通过外观类间接地访问;同时也可以提高子系统的独立性和可移植性。

    适用场景

    子系统随着业务复杂度的提升而变得越来越复杂,客户端需要某些子系统共同协作来完成某个任务。

    在多层结构的系统中,使用外观对象可以作为每层的入口来简化层间的调用。

    成员

    外观模式包括客户端共有三个成员:

    客户端类(Client):客户端是意图操作子系统的类,它与外观类直接接触;与外观类间接接触

    外观类(Facade):外观类知晓各个子系统的职责和接口,封装子系统的接口并提供给客户端

    子系统类(SubSystem):子系统类实现子系统的功能,对外观类一无所知

    场景概述

    一个智能家居系统,人是客户端类,各个电器如空调、CD、DVD、投影仪、音响等是子系统,控制各个电器的遥控器是外观类,人可以通过遥控器一键打开所有电器,一键关闭所有电器,一键打开CD让音响播放音乐等。

    image image
    优点

    实现了客户端与子系统间的解耦:客户端无需知道子系统的接口,简化了客户端调用子系统的调用过程,使得子系统使用起来更加容易。同时便于子系统的扩展和维护。

    符合迪米特法则(最少知道原则):子系统只需要将需要外部调用的接口暴露给外观类即可,而且他的接口则可以隐藏起来。

    缺点

    违背了开闭原则:在不引入抽象外观类的情况下,增加新的子系统可能需要修改外观类或客户端的代码。

    转自

    面向对象设计的设计模式(七):外观模式

    相关文章

      网友评论

          本文标题:外观模式

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