开发项目中有一个需求,它有很多种事件,互相之间的关系比较复杂,事件之间除了基本的通知,还有互斥、继承、包含,事件本身也有多重状态,写了两次都发现不理想,出现各种bug。第三次改的时候从解耦的出发点想出了一个方法,后来才知道这是一种设计模式,它叫责任链设计模式。
来自百度百科的释义:
责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。
当时这个开发需求搞得我很头疼,费了很多脑细胞。用了这个模式以后不光写起来容易了,而且给同事交接这块儿代码的时候也变得条理清晰,通俗易懂。