设计模式(策略+模板)

今天有个需求,统计一些数据,按照地区划分,不同地区生成不同的EXCEL。前几天看了老师的设计模式视频,今天就来试一试。




代码结构:547ea9b800017ad502990247.jpg





首先说说我对模板模式的理解:对某件事物,如果是从上到下依次发生(面向过程),并且途中有可能是不

确定因素(也可能是为了扩展),但是大部分流程相同,这时候就可以用模板模式;


我这里的需求无非就是:

1、从数据库取得数据,2、根据地区分组,3、根据某些计算规则排名,4、 根据某些格式创建excel


分析:其中1、2肯定是固定的,因此可以列为抽象模板的具体实现。3,4部会变动的可能性很大,为了扩展,

理应延迟到子类实现。


模板类的结构想好了之后,突然又想起一个事情,如果excel规则很多,并且某些模板类可能会按照多种规则解析,那我岂不是每一个模板实现类都要重写规则?想到这里我就想到了“策略模式”。



我对策略模式的理解:当某类事物具备多种行为,且行为多变的时候,我们可以把行为抽取出来单独存在(使用面向接口),然后在事物的具体实现里调用接口,这样能达到行为复用,并且和实现解耦和的作用。


这是抽象模板类:

547ead060001171505000354.jpg



这是模板默认实现类:

   

547ead8500016fde05000229.jpg



最后是规则接口,实现,和测试类:


547eadf50001d17c03810088.jpg

547eadf50001a0bb05000215.jpg

547eadf60001c8d005000118.jpg



其实写完了这个我自己也是迷迷糊糊的,理解的不是很彻底,反正写的时候就朝着那个思想走就行了。

最后问一句,我写这个算是 (模板+策略)吗? 求老师解答!

Mr_Li_0001
浏览 2157回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java