Contents

最近有个需求,就是我们列表是 从某个系统查询主数据源,分页20条,再从本地db,其他系统获取补充数据源,然后拼接这些副数据源到主数据源,再进行业务处理,返回给页面列表展示。
同时另外一个场景,是mq推送单条主数据源的变更数据,我们自己再拼接其他数据源,业务处理,同时推送这条变化到列表,告诉页面这条有变化。
两个场景除了数据源的获取方式有差异,业务处理最后要保持一致。但最开始,这两块是分开的。现在想共用数据处理逻辑,数据源本来就不一样。
我们后面使用模版方法,重构上面处理,分为,数据源+副作用处理+返参映射,这样列表给出的实现,只要推送的集成,重写数据源部分就行了,副作用和返参部分直接继承,修改也同时修改,一处改动就好了。
因为模版方法是基于继承的,所以想实现继承的就很方便,如果同样的需求,要用责任链,就要重新构建责任链,它是不能继承的。

Contents