外观模式 Facade Pattern

简介:

外观模式很简单,哪怕你没学过,你在工作中也用过,它就是对一个系统中的多个类里的接口进行了一层封装。

优点:

遵从了迪米特法则,即最少知道原则,你用户不用也无需知道那么多,我给你提供最简单接口,你调用就行。并且使得代码看起来简洁、结构明确、易读。

缺点:

违背了开闭原则,就是说如果子系统需要添加新类,那么需要修改封装类Facade。

结构:

在这里插入图片描述

例子及代码:

假设有这样的场景:村东头有一家专做小龙虾的A店,存南头有一家专门烤生蚝的B店,隔壁村有一家专门做铁板大鱿鱼的C店。

:如果张三只想吃任意一家店,OK,他走着去就行。但是如果他想三家店依次吃个遍,不行了,太远,肿么办?
:村长想了个好办法,村长开了个美食街,三家店都搬到美食街了,张三只需溜溜达达到美食街,就可以吃到三家美食了。

这个美食街,就是外观类Facade,而三家店,就是子系统的三个类。

小龙虾类:

在这里插入图片描述

生蚝类:

在这里插入图片描述

铁板鱿鱼类:

在这里插入图片描述

美食街类(外观类):

此类里需要提供封装子系统各类接口的接口

main函数及调用:

在这里插入图片描述

最终结果显示:

在这里插入图片描述

写在最后:

有人说为啥要弄个封装类呢?我每次需要哪个接口,就建一个其所在类的对象,一调用不就好了。
其一:为了美观,要不为啥叫“外观”模式?
其二:当要调用的类数量少的时候当然可以,如本文中张三逛美食街的例子,只有三个类三个店。现在不是美食街了,是美食城,里面有几十甚至几百的店,映射到代码中就是几百个类,你每次调用都要建一个其类对象吗。还不如直接封到美食城类里,直接美食城的类对象调用多好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值