抽丝剥茧设计模式- 责任链模式(Chain of Responsibility Pattern)
一、关于设计模式的思考
1.很多设计模式的区别不是语法的区别,而是语义的区别。
2.最难的是proxy,其次是chain of responsibility,Reactor 也当作设计模式。
3.所谓设计模式 就是把简单问题复杂化,把变化的部分封装那,即"封装变化"。
4.大部分的设计模式都是利用Java多态,多态是Java面向对象的核心。
二、请思考如下需求:
在公众号上发表文章,后台要经过处理才能发表和存如数据库,每个处理策略都要检查一遍。
三、责任链模式(Chain of Responsibility Pattern)
让多个处理请求的对象都有可能接收请求,将这些处理请求的对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。
应用场景:servlet Filter、listener
四、例子
package org.design.behavioral.chain;
import java.util.ArrayList;
import java.util.List;
public class ChainOfResponsibility {
public static void main(String[] args) {
Article article = new Article();
article.setArticle("Hello every one,(--)