Chain of Resposibility 职责链也是属于“数据结构”模式。
职责链在今天整个软件框架中应用确实不多,甚至你已经在运用链表的逻辑处理程序,但是可能并不意识到它是职责链的模式,这不重要。
文章目录
1. 动机( Motivation )
-
在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者的紧耦合。
-
如何使请求的发送者不需要指定具体的接受者?让请求的接受者自己在运行时决定来处理请求,从而使两者解耦。
举例说明,在windows WPF等都会有界面的处理逻辑,顶级的是窗口,接下来有peipou,接下来是一些list,有些textbox,一层一层对象,当你鼠标点击时,事件会沿着层级链表,一层层网上传播,第一级没有处理,这个事件就往下传,这个场景就是Chain of Resposibility 职责链的一种。
2. 模式定义
使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链(单向链表),并沿着这条链传递请求,直到有一个对象处理它为止。
----《设计模式》GoF
3. Chain of Resposibility 职责链代码演示
这里是一个示意性代码,整体代码如下:
#
C++设计模式:职责链模式详解与应用
本文介绍了C++中的职责链模式,详细阐述了其动机、模式定义和代码演示。职责链模式允许在运行时决定请求的处理者,通过创建一个处理者链来解耦请求发送者和接收者,降低耦合性。文中还通过示例展示了如何构建职责链,以及模式的结构和要点总结,强调了模式在应对变化时的灵活性和处理请求的默认机制的重要性。
订阅专栏 解锁全文
405

被折叠的 条评论
为什么被折叠?



