GoF之外观模式(Facade)

外观模式的定义


  外观模式在GOF中的解释:为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用

 


 

  BattleScene类调用GameSystemFacade的方法,与直接在BattleScene类中写相比,可以将BattleScene单一化,让该类只负责游戏在战斗状态下的

功能执行,和状态切换,不用负责串接各个游戏系统的初始化和功能调用。减少BattleScene不必要的类引用及功能的整合,增加了它的复用性。

 


 

整合子系统并提供一个高级的界面让客户端使用

  好比一台电视,电视的内部(系统的内部)组成我们不需要了解,各个系统之间是怎么工作的也不需要知道,我们只需要会使用遥控器(Facade),

使用遥控器,我们就可以观看想看的节目。外观模式可以让客户端使用简单的界面来操作一个复杂的系统,并减少客户端要与之互动额系统数量,让

客户端能够专心处理与本身有关的事情。

 

 


 外观模式的优点

  节省时间

  Unity3D本身提供了不少Facade接口,例如物理引擎,渲染系统,粒子系统等,就是由各自的Component类来充当的。用的时候只需添加,然后修改

参数,为我们节省了不少时间。

  易于分工开发

  对于一个即庞大又复杂的系统而言,应用外观模式,开发者只需要编写自己负责的系统的Facade接口类,然后提供给别的一定的接口,就能方便团队

项目开发。

  增加系统的安全性

   隔离客户端对子系统的接触,除了减少耦合度之外,安全性也是重点之一。

  需求变化时候

  能将修改的范围减少到Facade类中。

 

 


 

 

外观模式的注意事项

  注意将所有的子系统集中在一个Facade接口类中的时候,最终会导致Facade接口类过于庞大增加继续维护的难度。可以重构Facade接口类,将功能相近

的子系统进行整合,减少内部系统的依赖性,或是整合其他设计模式来减少Facade接口类过度膨胀。

 


 

其他方面的应用

  不同数据库引擎操作的整合

  

posted @ 2018-01-08 18:06  Recho  阅读(444)  评论(0编辑  收藏  举报