Java 我对模板模式设计的一点理解

模板设计模式我有一个很巧妙的思考,模板顾名思义,就是比照着这个模板然后拿来就用,特点就是降低设计的复杂度,可以抽象公共行为,对公共行为进行高度封装,但是我思考的是 在模板模式的思维上进行演化,假如有这么一台巨型机器,这台机器十分复杂,如果让一个新手去理解可能花费很多时间,那么我们可不可以这样设计每个人不知道这个机器的具体实现逻辑但是可以给它传递参数,然后获得我们想要的结果,它的特点就是可以把复杂逻辑折叠到一个人身上(公司的核心人员或者架构师),

我举个例子二战期间美国如何打赢的,当然因素很多 ,但是有一个方面就是后勤的伙食问题,美军采用午餐肉罐头,他可以把做饭这件事从前线高度折叠到后方,我举个古代带兵打仗例子,有句话叫兵马未动,粮草先行,古代带兵打仗,粮草是很头痛的事,比如10担粮食运输到前线可能剩下连20%都不到(因为路上人吃掉回来的时候又吃掉一部分).日本当时因为二战没有这么精巧的设计,而且是远程作战,但他们后来发明了饭团,寿司什么的,便于携带但是总体上不利于保存还是在粮食运输问题上捉襟见肘.

话不多说我先说一下我们公司又写一个工具的需求,这个工具定期执行,但里边逻辑非常复杂,逻辑里边套着各种小逻辑 具体不描述不是重点.

我是这样设计的 

Java 我对模板模式设计的一点理解

 

 

当我继承了这个AbstractMqPhoto抽象类之后 ,有这几个参数方法,可以数据不同的参数,而不用关具体这个机器怎么运作.

为什么用抽象类,这种方式,这里你仔细思考下.非常巧妙

 

Java 我对模板模式设计的一点理解