首页 > 编程语言 > 详细

java设计模式-策略模式

时间:2019-06-18 20:21:38      阅读:102      评论:0      收藏:0      [点我收藏+]

  第一次好好的看设计模式,可能有不对的地方,大佬们可以下面指出,感谢!

  ----------- 分割线 ----------

  场景:商城打折活动,但是我不确定是打几折,因为换季可能打折力度不一样,8折,9折,满300减50等等等等,这时候我们去计算用户的实际消费数额,这个时候可以用上策略模式;把计算这个过程策略化。

首先是父类,这是个抽象算法,我们先抽象定义个算法方法:

技术分享图片

打折分为打几折,我们只需要将打折类构造器传入参数即可实现打几折还是原价的实现,满减这时候需要两个参数,满多少,减多少,改造下构造方法;

打折类:

技术分享图片

满减类:

技术分享图片

定义操作类context:

技术分享图片

程序调用:

技术分享图片

技术分享图片

ok,简单的策略模式就完成了。但是问题来了,这个场景的打折和满减力度都是不确定的,我们是不是能结合工厂来改造下这个context呢?答案是肯定的,我们把context里面初始化Operation工厂化就ok啦,用上上一篇的工厂模式,策略+工厂结合。

技术分享图片

改造红框部分即可,策略模式到此结束啦,后期如果有应用,我会重新补充此博客。

 附上个人理解和工厂模式的区别:

 技术分享图片

 

java设计模式-策略模式

原文:https://www.cnblogs.com/ghsy/p/11047056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!