- 物体之间联系太复杂,关系混乱
- 处理对象关系与外部的关系
- TankFrame要用到别的,但是添加进去后代码改起来会很复杂,这时添加一个大管家,将所有别的要用的东西封装起来,是tankFrame直接跟大管家打交道
- Facade将一大堆特别复杂的关系封装起来(将内外的关系简单封装一下),封装到一个类中,由该类来管理这些复杂的类,并且对外开放一些接口。
- 与中介很类似但仍不是中介,之后会单独说中介。
图解
坦克大战的例子使用门面模式
- 要从两个方面来改进
- tankFrame主要用来展示,要加一个门面使之与其他组件进行联系
- Frame -> 展示
- GameModel -> 内部逻辑计算
- 此处又涉及到MVC的设计模式
- GameObject
- 主要用来统一各组件
- 将组件放在GameObject的list中方便统一管理,方便拓展,添加组件……
- tankFrame主要用来展示,要加一个门面使之与其他组件进行联系