事件中心:低耦合

在面向对象编程中,我们经常需要用类A的行为去引发类B、C、D的行为。最直接的方法,用A类的对象去调用B、C、D类对象的方法。但是这样会有许多的问题,首先,类A的对象需要获取到别的类的实例,A需要维护一个其他类的存在列表。其次,随着类A行为的复杂化,调用的代码会急剧增加,逻辑也会复杂化。这与我们软件设计的原则是不符合的,严重破坏了A类功能的独立性,耦合高、难扩展。

事件中心的思想帮助我们解决这个问题。对于每一个类,我们并不关心其他类的行为,我们只关心我们自己执行的结果应该让其他类接收到什么样的信息,或者我们应该对哪种信息做出反应。那有没有这样一种类,如果有我关注的信息出现,就把这件事情告诉我,我有什么想引起别人注意的事情,也请他带为转发。这就是事件中心。

事件中心至少应该拥有以下部分:

1.一个容器,用来存放事件以及对应的方法

2.一组方法,用于添加和去除对事件的监听

3.向事件中心发送事件,并附带一些信息。

4.清空容器的方法

在注册过事件中心的对象不再监听事件(比如被销毁)的同时,应该使用取消监听。在切换场景等场合,应该清空容器。对于有特殊的不消毁Gameobject应令行处理。

發表留言

使用 WordPress.com 設計專業網站
立即開始使用