适用性
当软件系统变得越来越复杂,使用方法也会变得越来越困难。这时可以使用外观模式为普通用户提供简单易用的接口以满足一般的要求。与此同时,原有的灵活而强大的功能仍然保留,为专业用户提供完全的控制,以满足更加精细的要求。
另一种情况,为了提高软件系统的独立性和通用性,可以使用外观模式对外提供接口而隐藏内部的实现细节。这种情况下,所有的功能都由外观接口提供,因此设计稳定的接口变得非常重要。
还有一种情况可以看作是第二种情况的延伸,当我们需要构建一个多层次的软件架构时,每一层都可以使用外观模式定义接口。这样一来,无论是对于在早期建立开发原型,还是在开发中后期实现和变更功能都会变得更加容易。
结构
参与者
• Facade
— 对外提供利用子系统功能的接口
—调用子系统内部的模块以达成用户要求。
• 子系统
— 实现子系统功能
— 处理由Facade对象转发的用户请求。
— 也可以开放一部分(或全部)功能以供具备专业知识的用户使用。
协作
外观类将用户的请求转发给子系统并通过子系统实现功能。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】