zoukankan      html  css  js  c++  java
  • java设计模式-策略模式

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

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

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

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

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

    打折类:

    满减类:

    定义操作类context:

    程序调用:

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

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

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

     

  • 相关阅读:
    前端安全
    关于HTTPS的概念性了解
    数组去重
    防抖与节流
    对meta标签的再次认识
    关于路由, 我好奇的那些点
    关于构造函数,实例,原型对象一纯手工的理解
    数据库查找操作-java
    python之图像加载和简单处理
    python之excel表格操作
  • 原文地址:https://www.cnblogs.com/ghsy/p/11047056.html
Copyright © 2011-2022 走看看