美文网首页
铁索连环 责任链模式

铁索连环 责任链模式

作者: NazgulSun | 来源:发表于2019-03-06 15:29 被阅读0次

    今天说一下责任链模式

    以前写mvc的代码的时候,一定是用过filter的,

    每个filter可以做一些事情,比如过滤字符,安全检查等等。

    这些filter 可以按照你想要的顺序组成一个 chain。

    一个chain 就相当于 处理中心,他可以任意的添加各种能力,比如filter,

    然后client 给他一个任务,他就可以自由的处理了。

    从其命名可以看出,他的关键在于一个"链"字,这个链可以根据用户的需求动态的组合,

    好似一个动态的流水线,而流水线最适合处理的场景就是流程化的任务。

    我自己的觉得,责任链模非常适合多个步骤组合的流程,并且可以动态的增加步骤,或者调整步骤的顺序。

    我自己开发的过程中遇到的需求就是,我需要做一个 ETL的流程, 从一个db数据源把记录转化成

    neo4j需要的图模式,这个从 start-end的过程中 有很多步骤,并且未来这一部分可能有很多的变化。

    在这个流程中使用 责任链的模式,可以像 流式编程一样处理 我们的 etl过程。

    目前,我们的 chain中包含的步骤包括, enrich, 生成Id, 模型转换 等等步骤,并且未来随着业务的需求会做进一步的增加。

    另外一个比较经典的例子时 javascript 的事件冒泡机制。

    javascript 使用dom 的模型对页面元素建模, 整个页面是一个完全嵌套的DOM盒子结构

    每一个盒子都有自己的处理事件的能力,由外到内的组成一个事件响应的链条。当用户点击一个内部盒子的时候,

    就由这个元素把事件 从链条从内往外传递,并进行相应的事件响应。

    一句话总结, 流程式的需求,可以考虑使用 责任链模式。

    相关文章

      网友评论

          本文标题:铁索连环 责任链模式

          本文链接:https://www.haomeiwen.com/subject/hutxpqtx.html