设计模式之模板方法模式和策略模式
今天看了雷神的公开课,再次学习了设计模式的五个原则以及两个设计模式的应用案例
模板方法模式:定义一个算法骨架(一套业务流程),子类可以实现里面的一个或多个步骤
eg:对于Spring中,Service层实现类就是一个模板,里面有多个步骤(这里体现使用了该模式的多个步骤,而不是子类实现父类某个步骤)
策略模式:对业务流程中的同一个步骤,根据业务需求有多种不同的实现
eg:
模板方法模式:定义(一套)支付的业务流程 (算法骨架):
发请求——查数据库——生成支付页面(策略)——通知支付结果(策略)
策略模式 (对于同一个步骤 (算法),有多种不同的实现):
- 针对用户选取的不同支付类型,采取不同的策略生成支付页面
- 根据不同的支付方式,采用不同策略处理支付结果
两个业务流程,定义模板