为了能到远方,脚下的每一步都不能少.|

lmyyyy

园龄:2年8个月粉丝:7关注:10

10月20日总结

1、什么是外观模式?

一句话解释:

将一系列需要一起进行的操作,封装到一个类中,通过对某一个方法的调用,自动完成一系列操作。

外观模式是一种简单而又实用的设计模式,它的目的是提供一个统一的接口,使得客户端可以通过这个接口来访问子系统中的一组接口,而无需关心子系统中接口的具体实现。外观模式将子系统中的接口封装在一个外观类中,使得子系统的内部细节对客户端隐藏起来。

官方意图描述:为子系统中的一组接口提供一个一致的界面,Facade 模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

一个比喻:(课表与调休日)

加入今天是周六需要补国庆放假周一的课,那么只需要公告一下,今天按周一的课表上课就行了,不需要逐一通知课表上的任课老师。此时‘周一的课’就是一个封装后的方法,调了这个方法后,就无需再调用每节课的任课老师,课表会进行一一对应。
2、外观模式的优缺点和适用场景

优点:

提供了一个统一的接口:外观模式提供了一个统一的接口,使得客户端可以通过这个接口来访问子系统中的一组接口,而无需关心子系统中接口的具体实现。这样可以使得代码更容易理解和维护。
隐藏子系统的复杂性:外观类将子系统的功能封装起来,客户端只需要调用外观类的方法即可完成操作,从而隐藏了子系统的复杂性。
提高了代码的可扩展性:外观模式提供了一个统一的接口,使得客户端可以通过这个接口来访问子系统中的一组接口,而无需关心子系统中接口的具体实现。这样可以使得代码更容易扩展,当需要添加新的子系统时,只需要添加一个新的外观类即可。

缺点:

增加了系统的复杂性:外观模式引入了外观类和子系统之间的依赖关系,使得系统的结构和实现变得更加复杂。
如果设计不当,增加新的子系统可能需要修改外观类的源代码,违背了开闭原则:因此,在设计外观类时,需要考虑到将来可能会增加新的子系统,使得外观类的源代码可以容易地扩展。
可能增加系统的耦合度:外观类和子系统之间的依赖关系可能会导致系统的耦合度增加,从而影响系统的可维护性和可测试性。
可能降低系统的灵活性:由于外观类将子系统的功能封装起来,因此可能会限制客户端对子系统的定制和扩展。

适用场景:

子系统复杂:当子系统的调用接口非常复杂时,可以使用外观模式来简化客户端与子系统之间的交互。
层次复杂:当系统结构层次复杂时,每个层级都一个使用外观对象作为该层入口,可以简化层次间的调用接口。
需要隐藏子系统的细节:当子系统的实现细节不应该被客户端直接访问时,可以使用外观模式来隐藏这些细节。
需要降低耦合度:当客户端和子系统之间的耦合

本文作者:lmyyyy

本文链接:https://www.cnblogs.com/lmyy/p/17786240.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   lmyyyy  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起