什么时候使用事件机制
事件机制用起来很舒服,我只要往事件管道投一个事件进去,就可以给目标对象传递一些数据,而不需要获取目标对象的引用。
但是,事件机制也不能乱用,因为它一来让数据的传递不是那么直观,二来还没法方便地利用类型检查(得每次调用接口传递泛型)。
那什么时候建议使用事件机制呢?
首先要认识到,事件是通信方式的一种。它应该用于解决其他通信方式没法足够好地解决问题的场景。通信方式可以简单地分为两种:通信双方之间具有直接关系和不具有直接关系。
两个对象间具有直接关系:比如A创建了B,或者A可以直接获取B的引用。这种方式不需要使用事件。当然,有时候为了逻辑的统一,也可以使用事件来通信。
两个对象间没有直接关系:比如A和B中间隔了好几个对象。这种情况A和B之间通信应当使用一个全局的事件中心来进行。