概念介绍
外观模式是隐藏了系统的复杂性,能够为子系统中的一组接口提供一个统一的接口。客户在使用系统时不必和子系统打交道了,降低了客户和子系统间的耦合。
在外观模式中主要包含如下几个角色。
1、门面角色(facade):这是外观模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。
2、子系统角色(SystemA、SystemB、SystemC):实现了子系统的功能。对子系统角色来说,facade角色与客户角色一样,是未知的,它没有任何facade角色的信息和链接。
3、客户角色(client):调用facade角色来完成要得到的功能。
外观模式的优点
1、对客户端屏蔽了子系统组件,减少了客户端处理的对象数量,也减少了客户端的代码量。
2、实现了客户端和子系统的松散耦合,使得子系统个变化不会影响到调用它的客户端,只需要改变外观类即可。
3、一个子系统的变化不会影响到另一个子系统,子系统内部变化也不会影响到外观对象。
外观模式的缺点
1、不能很好地限制客户端直接使用子系统类,如果对客户端访问子系统类做太多的限制则减