目录
外观模式
引言
一般情况下,一个Web网站都会提供一个首页,作为网站的入口,我们只需要记住这个首页的地址,即可访问它的各个子页面的超链接。当然,用户也可以记住每个子页面的地址,直接通过子页面的地址直接访问。实际上用户是不会记住每一个子页面的地址,此时可以通过首页间接的访问期望访问的子页面,在这里首页就扮演了一个“外观角色”。
定义
英文定义:"Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use."。
中文定义:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层次接口,这个接口使得这一子系统更加容易使用。
外观模式重要等级★★★★★ 外观模式难度等级★☆☆☆☆
模式类图
外观模式包含俩个角色:
1.Facade(外观角色)
2.SubSystem(子系统角色)
实例
实例描述
自己泡咖啡需要自己准备开水(Boil Water)、准备咖啡(Prepare Coffee)、准备杯子(Prepare Cup)、还要自己去煮(Cook Coffee),而去咖啡厅喝咖啡只需要把要求告诉服务员,所有的过程由服务员来完成,此时服务员就是外观角色。用外观模式实现该场景,并且在测试代码中可以体现外观模式的有点。