新人求讨论:layer之间通信如何设计?游戏状态该在什么地方维护?

新人一枚,学习cocos2d-x两周,各种疑惑。

先说下自己的理解.

话说Director负责scene的调度与切换,一个Scene可以包含多个Layer,那直接Layer之间,该如何高效、漂亮地通信呢?

我知道Layer之间可以通过delegate模式进行通信(当前Layer中定义纯虚Dlegate,目标Layer中继承并实现虚函数,Scene中将两个Layer关联)

但是我觉得这种模式有个问题:要求两个layer必须一开始就加入到scene中,但有的layer可能非常不易出现,那样的话,会一直占用不必要的内存,造成浪费。

还有一种我瞎想的方式是:所有状态变化都通知scene,有scene来决定下一步动作。

请问大家:
0. 如何分层?按功能?

  1. 如何设计layer之间的通信?
  2. 游戏状态在什么地方维护?各个layer,还是统一交给scene?

同新手,
我觉得可以吧逻辑数据单独出来一个类,
用来存放一些状态以及逻辑标识符,
然后各个layer根据这些数据走逻辑流程.