• 设计模式:外观模式(Facade Pattern),理解为小爱同学模式


    今天在翻设计模式,火鸡鸭子嘎嘎叫。原来我一直在用外观模式,一不小心还用成了上帝模式 😂

    这种模式比较简单,不贴伪代码了

    外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。

    简单粗暴理解:A( )  B( )  C(A( )B( ))

    外观类为包含许多活动部件的复杂子系统提供一个简单的接口。 与直接调用子系统相比, 外观提供的功能可能比较有限, 但它却包含了客户端真正关心的功能。

    举个例子: “小爱同学,我要看电视”。然后小爱就打开电视,打开暖气,打开氛围灯。。。

    学术一点:使用单个外观类隔离多重依赖,create一个封装所需功能并隐藏其他代码的外观类, 从而无需使全部代码直接与数十个框架类进行交互。 该结构还能将未来框架升级或更换所造成的影响最小化, 因为你只需修改程序中外观方法的实现即可。

    实现方式

    1. 考虑能否在现有子系统的基础上提供一个更简单的接口。 如果该接口能让客户端代码独立于众多子系统类, 那么你的方向就是正确的。

    2. 在一个新的外观类中声明并实现该接口。 外观应将客户端代码的调用重定向到子系统中的相应对象处。 如果客户端代码没有对子系统进行初始化, 也没有对其后续生命周期进行管理, 那么外观必须完成此类工作。

    3. 如果要充分发挥这一模式的优势, 你必须确保所有客户端代码仅通过外观来与子系统进行交互。 此后客户端代码将不会受到任何由子系统代码修改而造成的影响, 比如子系统升级后, 你只需修改外观中的代码即可。

    4. 如果外观变得过于臃肿, 你可以考虑将其部分行为抽取为一个新的专用外观类。

     外观模式优缺点

    •  你可以让自己的代码独立于复杂子系统。
    •  外观可能成为与程序中所有类都耦合的上帝对象。指的是一个上帝干的事情特别多,最后耦合度相当高。
  • 相关阅读:
    【从零开始的Java开发】2-8-3 CSS浮动:DIV、盒子模型、浮动
    实验一、综合实验【Process on】
    疫情后时代变了吗?
    Vue3.0 —— setup、ref、reactive和 computed的简介及使用
    深度学习理论:Categorical crossentropy 损失函数
    2022最新IDEA配置Maven及Tomcat--详细、简单,适合初学者
    学习笔记-java函数式编程
    隐私计算迎来千亿级风口,一文讲清它的技术理论基础
    线程的状态
    安卓记录2
  • 原文地址:https://blog.csdn.net/dongnihao/article/details/127563766