GoF之外观模式(Facade)
外观模式的定义
外观模式在GOF中的解释:为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用
BattleScene类调用GameSystemFacade的方法,与直接在BattleScene类中写相比,可以将BattleScene单一化,让该类只负责游戏在战斗状态下的
功能执行,和状态切换,不用负责串接各个游戏系统的初始化和功能调用。减少BattleScene不必要的类引用及功能的整合,增加了它的复用性。
整合子系统并提供一个高级的界面让客户端使用
好比一台电视,电视的内部(系统的内部)组成我们不需要了解,各个系统之间是怎么工作的也不需要知道,我们只需要会使用遥控器(Facade),
使用遥控器,我们就可以观看想看的节目。外观模式可以让客户端使用简单的界面来操作一个复杂的系统,并减少客户端要与之互动额系统数量,让
客户端能够专心处理与本身有关的事情。
外观模式的优点
节省时间
Unity3D本身提供了不少Facade接口,例如物理引擎,渲染系统,粒子系统等,就是由各自的Component类来充当的。用的时候只需添加,然后修改
参数,为我们节省了不少时间。
易于分工开发
对于一个即庞大又复杂的系统而言,应用外观模式,开发者只需要编写自己负责的系统的Facade接口类,然后提供给别的一定的接口,就能方便团队
项目开发。
增加系统的安全性
隔离客户端对子系统的接触,除了减少耦合度之外,安全性也是重点之一。
需求变化时候
能将修改的范围减少到Facade类中。
外观模式的注意事项
注意将所有的子系统集中在一个Facade接口类中的时候,最终会导致Facade接口类过于庞大增加继续维护的难度。可以重构Facade接口类,将功能相近
的子系统进行整合,减少内部系统的依赖性,或是整合其他设计模式来减少Facade接口类过度膨胀。
其他方面的应用
不同数据库引擎操作的整合