微学网

热门关键词:   as  thinkphp  ecshop  xxx  商务通  www.ymwears.cn
热门: ASP.NET PHP编程 ASP编程 JSP编程 Python

模板方法模式在电商项目中的使用!

发布时间:2021-05-04 来源:未知 点击:

标签:设计模式 实现 子类 模式 电商 方法 模板


图片

 

这两天特别忙,有两位大神在这周结婚,我忙着去蹭吃蹭喝!

 

图片

 

没毛病,群主就是个吃货!所以就索性把之前写的设计模式拿出来一篇,分享给大家!

 

还是那句话,网上有大量的设计模式的文章,他们写的都非常的好,我也能看懂,但是我在实际的项目中用不出来。

你说奇怪不,我会,我懂,但是我不会用。面试回答我都 OK,但是我想在项目中使用,但是就是找不到使用场景!

这样的人不在少数,微信群里有一个人抛出这个问题后,都炸锅了。有同感,请群主指点,所以便有了这篇文章。

模板方法的设计模式非常的简单,类图如下:

图片

简单吧,确实太简单了。下面我们说一说我们电商系统对模板方法的使用。

我们公司,有非常多的子公司,有线上电商,还有线下实体店。每个公司每个月都要下载一些报表,或者打印合同等之类的需求。公司要求,每次打印合同或者下载报表,表头表尾都要有对应的水印和公司对应的抬头。这里我们就用到了模板方法模式,针对这个使用场景,我们抽象一下,实现代码大致如下:

图片

 

A 公司的实现:

图片

 

B 公司的报表实现:图片

 

调用实例如下:

图片

 

简单吧,模版方法非常的简单!

除了我上这个例子,JDK 中也有模板方法的身影,比如:AbstractQueuedSynchronizer、多线程 AQS 的实现。Dubbo 中也有模板方法的使用,比如:Dubbo 中负载均衡算法的实现。SpringBatch 中也有,如果你用过这个框架的话!tomcat 的 LifecycleBase 也是模板方法模式,Spring 中的 JdbcTemplate。

模板模式是一种行为设计模式,它的实现思路是,创建一个桩方法,并且定义一些步骤让子类来实现。模板方法定义了一个算法的执行步骤,或者说能够提供一种默认的实现,这种实现概括一部分子类或者全部子类的共同部分。

  • 模板方法应该是由确定的步骤组成。这些步骤的顺序是固定的。基类与子类之间某些方法或者实现可以有所不同。模板方法应该是 final 的。

  • 大多时候,子类的调用的方法是来自于超类。但是在模板模式中,超类的模板方法调用的方法却来至于子类,这就是著名的Hollywood原则-“don’t call us, we’ll call you”。

  • 基类方法的默认实现被退化为钩子 Hooks 的概念,他们被设计在子类中被重写,如果你期望一些方法在子类中不被重写,你可以让他们为 final。

看吧,模板方法模式是如此的简单,喜欢大家都会用它!


这就是微学网-程序员之家为你提供的"模板方法模式在电商项目中的使用!"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/14349.html
网络编程 | 前端制作 | 数据库 | CMS教程 | 脚本编程 | 框架 | 服务器 | 微信开发 | APP开发 | 学习教程 |

凡本网站转载的文章、图片等资料的版权归版权所有人所有,因无法和版权所有者一一联系,如果本网站选取的文/图威胁到您的权益,请您及时和本网站联系。 我们会在第一时间内采取措施,避免给双方造 成不必要的损失。
© 2015-2021 微学网 版权所有,并保留所有权利。 备案号:粤ICP备09051474号-1

菜鸟学习网,提供各类程序编程入门,技巧