治疗技术焦虑的方法就是学习!

设计模式-策略模式

设计模式 李新广 1195℃ 0评论

定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
策略模式定义和封装了一系列的算法,它们是可以相互替换的,也就是说它们具有共性,而它们的共性就体现在策略接口的行为上,另外为了达到最后一句话的目的,也就是说让算法独立于使用它的客户而独立变化,我们需要让客户端依赖于策略接口。
举一个很常见的例子,我们在项目中都需要记录用户的操作日志,正常情况下用户访问后台接口时都会带上自己的用户ID,这样我们就可以直接获取到用户的用户名;但是如果用户在访问登录接口时,此时记录操作日志他是没有用ID的,所以需要通过他的账号去查询出他的用户名及相关信息,然后记录日志。
在这种情况下我们就可以使用策略模式来实现

LogService定义了一个方法,LoginLogServiceImpl和OrdinaryLogService分别是不同的实现。客户端根据需要,使用不同的实体类即可。

这样,即使以后再增加其他记录日志的方式,只要增加一个实现类即可。

转载请注明:大道至简 » 设计模式-策略模式

喜欢 (2)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址