职责链模式在JAVA中的运用


实习期间需要维护预处理系统,读源代码的过程中学习了高手对设计模式的运用,记录以备后用。


1.关于职责链


属于设计模式的一种,具体不多科普,随手可查,我这里举个简单的例子。将程序的请求(输入)放到一条流水线上,让流水线的工人去一步步加工请求,这之中少了工人ABCD也可以完成处理,因为每个工人负责的部分是不同的,当然少了某个工人出来的产品(输出)就不同了,但一条流水线不会因为一个工人不在而停工的,而且在加工的过程中工人职责独立所以耦合度低,非常方便替换。这就是我理解的职责链。


2.在JAVA中的使用


在读源代码的过程中,观察到预处理系统引入了Apache.Common.chain这个包,经过查资料和看API后了解到这时apache提供的工具包中关于职责链的实现,只需要按需求实现接口即可完成职责链。


2.1 职责链上的职责类,需要实现Command接口,实现excute方法,这个方法的返回值表示是否传送到下个职责上,每个职责(CMD)在执行时都会调用这个方法,每个职责的功能逻辑就要在这里面实现。


2.2请求的实现,关于请求只需要

Context context = new ContextBase();

这样就实现了一个请求,一个未加工过的产品。Context实现了Map接口,当成map使用即可,将需要加工的数据包装好放进去,就可以等待工人的操作。


2.3职责链配置文件

在resource目录下新建chains-config文件,大致结构如下


<catalog>
	<!-- 入口 -->
	<chain name="preprocess">
		<command className="com.xxx.yyy"
			id="AreaReferTag" />
	</chain>
</catalog>

所有的cmd都如图配置


2.4启动职责链

ChainsCatalogLoader.getChains(CHAIN_NAME).execute(context);



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值