1. 物体之间联系太复杂,关系混乱
  2. 处理对象关系与外部的关系
  3. TankFrame要用到别的,但是添加进去后代码改起来会很复杂,这时添加一个大管家,将所有别的要用的东西封装起来,是tankFrame直接跟大管家打交道
  4. Facade将一大堆特别复杂的关系封装起来(将内外的关系简单封装一下),封装到一个类中,由该类来管理这些复杂的类,并且对外开放一些接口。
  5. 与中介很类似但仍不是中介,之后会单独说中介。

图解

image.pngimage.png

坦克大战的例子使用门面模式

  • 要从两个方面来改进
    • tankFrame主要用来展示,要加一个门面使之与其他组件进行联系
      • Frame -> 展示
      • GameModel -> 内部逻辑计算
      • 此处又涉及到MVC的设计模式
    • GameObject
      • 主要用来统一各组件
      • 将组件放在GameObject的list中方便统一管理,方便拓展,添加组件……