码迷,mamicode.com
首页 > 编程语言 > 详细

java设计模式-策略模式

时间:2019-06-18 19:57:41      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:调用   简单的   info   mamicode   理解   过程   图片   结合   需要   

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

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

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

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

技术图片

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

打折类:

技术图片

满减类:

技术图片

定义操作类context:

技术图片

程序调用:

技术图片

技术图片

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

技术图片

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

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

 技术图片

 

java设计模式-策略模式

标签:调用   简单的   info   mamicode   理解   过程   图片   结合   需要   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!