设计模式 -- 门面模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是门面模式?

        门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用

二、门面模式的优缺点

优点:

  1. 简化接口:门面模式提供了一个简单的接口来访问子系统,从而减少了客户端与子系统之间的复杂性。

  2. 解耦系统:门面模式将客户端与子系统解耦,从而使得子系统的修改不会影响到客户端。

  3. 提高安全性:门面模式可以限制客户端对子系统的直接访问,从而提高了安全性。

  4. 提高可维护性:门面模式将系统的复杂性隐藏在门面后面,从而使得系统更容易维护和修改。

缺点:

  1. 过度使用门面模式可能会导致代码变得复杂和难以维护。

  2. 门面模式可能会使代码过度耦合,因为所有客户端代码都需要通过门面进行访问。

  3. 门面模式可能会导致性能问题,因为每次调用门面都需要执行一些额外的代码来处理请求。

  4. 如果门面过于复杂,可能会导致代码重复和冗余。

  5. 门面模式可能会限制系统的扩展性,因为所有客户端代码都需要通过门面进行访问,而不能直接访问底层组件

三、门面模式的结构:

设计模式 -- 门面模式_第1张图片

四、门面模式实战

        以上面结构图为例,当我们需要在家做饭的时候 ,需要买菜,洗菜,做饭,洗盘子这么多流程,而且这些流程还会有一定的顺序,这个时候如果有一个门面,我需要吃的时候直接吃就好了,不用考虑那么多步骤以及这些步骤之间的顺序,因此,这个时候餐厅就出来了,门面模式诞生了,你只需要去餐厅吃饭即可,其他都有餐厅来做了.

1.创建步骤流程(买菜->洗菜->做饭->洗盘子)

设计模式 -- 门面模式_第2张图片

 设计模式 -- 门面模式_第3张图片

 设计模式 -- 门面模式_第4张图片

 设计模式 -- 门面模式_第5张图片

 2.创建门面餐厅类

设计模式 -- 门面模式_第6张图片

 3.顾客来访:

设计模式 -- 门面模式_第7张图片

4.测试结果

设计模式 -- 门面模式_第8张图片

五.总结

        门面模式是一种结构型的设计模式,包括我们自己使用很多第三方的jar包,其实就是一种门面模式的具体使用,不需要考虑细节,我们只需要尽情调用即可,当然为了提升自己,还是建议小伙伴们多去看下底层代码,说不定会对自己未来某块业务上有帮助.

你可能感兴趣的:(设计模式)