相信好多码农都知道java设计模式是什么吧,这里我就不多一一列举,我是最近有些需求开发,涉及到一些可复用的代码开发,就用一下模板模式和策略模式。通俗理解一下,模板模式就是共用抽象类的有一个模板方法大家都用得上,然后外加一个修饰方法,然后子类实现类可以自行重写该修饰方法。但是呢,因为涉及到不同场景,此时可以加入一个策略模式,根据不同场景采用不同的策略来重写该修饰方法。这样封装共用方法是不是一下子高大上起来了,然后把java的多态性使用的淋漓尽致了吧,代码块解耦也方便后期代码的扩展嘛不是?
废话说了这么多,也应该上点干货嘛,看看我写了什么东东。
一、模板模式

前提场景是不同流程结束后触发该关爱基金解约,因此我写了模板类,用共同的模板方法封装关爱基金的参数。

因为有根据场景不同设置不同时间参数的,所以要重写一个修饰方法来封装,这里写了个子类,然后根据不同场景,加入不同参数封装策略。
二、策略模式



根据不同场景去set不同的策略参数,然后调用具体策略里的方法进行参数封装。

注意:如果使用new方法来实例化接口,记得接口实现类不能用autowired引入bean,否则是会空指针。
总结,模板模式+策略模式,中间其实也算加上了修饰模式,让代码更优雅,扩展代码块解耦。
网友评论