设计模式——外观模式

举报
yd_221104950 发表于 2020/12/02 23:10:32 2020/12/02
【摘要】 外观模式是将一个或数个类的复杂的一切都隐藏在背后,只显露出一个干净美好的外观。外观简化了接口,也将客户从组件的子系统中解耦。外观和适配器都可以包装许多类,但是意图是不一样的,外观是为了简化接口,而适配器是为了将接口转换成不同的接口。 外观模式定义 提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 外观模式的类图: 外...

外观模式是将一个或数个类的复杂的一切都隐藏在背后,只显露出一个干净美好的外观。外观简化了接口,也将客户从组件的子系统中解耦。外观和适配器都可以包装许多类,但是意图是不一样的,外观是为了简化接口,而适配器是为了将接口转换成不同的接口。

外观模式定义

提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
外观模式的类图:

在这里插入图片描述
外观模式会减少软件的维护成本,但是也可能会导致更多的“包装”类被制造出来,可能会导致复杂度和开发时间的增加,并降低运行时的性能。

不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其他部分。避免方法:就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:

  1. 该对象本身
  2. 被当做方法的参数而传递进来的对象。
  3. 此方法所创建或实例化的任何对象。
  4. 对象的任何组件

外观设计模式只是提供更直接的操作,并未将原来的子系统阻隔起来。如果需要子系统类的更高层功能,还是可以使用原来的子系统。

我们举个煮饭的例子吧:
煮饭涉及三个工具:电饭煲、量水容器、量米容器。类图如下:
在这里插入图片描述
煮饭的过程要调用不同的方法,过程很繁琐,也很复杂,我们可以通过外观设计模式,将这一系列的动作写在一个外观方法中提供给用户调用。用户就可以不用管具体的细节了。

Demo代码已上传GitHub欢迎下载学习
谢谢阅读!

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/88817083

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。