# 设计模式之职责链模式

2 min read
Table of Contents

职责链模式,英文全称是:Chain Of Responsibility Design Pattern。在设计模式中的定义:将请求的发送和接受解耦,让多个接受对象都有机会处理这个请求。将这些接受对象串成一条链,并沿着这条链传递这个请求,直到链上某个接受对象能够处理它为止。

进一步解释,在职责链模式中,多个处理器(也就是刚刚定义中说的“接收对象”)依次处理同一个请求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再传递给 C 处理器,以此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职责,所以叫作职责链模式。

职责链模式有两种常用的实现。一种是使用链表来存储处理器,另一种是使用数组来存储处理器,后面一种实现方式更加简单。

职责链模式常用在框架开发中,用来实现框架的过滤器、拦截器功能,让框架的使用者在不需要修改框架源码的情况下,添加新的过滤拦截功能。这也体现了之前讲到的对扩展开放、对修改关闭的设计原则。

参考链接


More Posts

# 设计模式之策略模式

5 min read

策略模式,英文是:Strategy Design Pattern。在《设计模式》中的定义:定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端。

# 设计模式之迭代器模式

3 min read

迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。