当前位置: 首页 > news >正文

网站建设与制作教程扬州市建设工程招投标信息网

网站建设与制作教程,扬州市建设工程招投标信息网,上海哪里做网站,设计师门户网站程序FullDiscount Strategy,策略模式:定义一系列的算法,把他们一个个封装起来, 并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。 场景:购物车结算时,根据不同的客户,…

FullDiscount 

Strategy,策略模式:定义一系列的算法,把他们一个个封装起来,
并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。

场景:购物车结算时,根据不同的客户,计算不同的折扣策略,先定义个折扣策略基类Discount,各种不同的折扣定义子类来继承。根据实际的情况,再将折扣策略传给购物车对象进行订单的结算。

类图:

PatterTest类调用购物车ShoppingCart测试,ShoppingCart传入Discount来计算折扣。

Discount.java基类

package com.figo.study2024.pattern.strategy;/*** 计算折扣接口*/
public interface Discount {public int calculate(int money);
}
package com.figo.study2024.pattern.strategy;/*** 满减*/
public class FullDiscount implements Discount {@Overridepublic int calculate(int money) {if (money > 200){System.out.println("优惠减免20元");return money - 20;}return money;}
}
package com.figo.study2024.pattern.strategy;/*** 首次购*/
public class NewerDiscount implements Discount {@Overridepublic int calculate(int money) {if (money > 100){return money - 20;}return money;}
}
package com.figo.study2024.pattern.strategy;
/*** 测试策略模式* 购物车费用结算过程*/
public abstract class ShoppingCart {private Discount discount;public void setDiscount(Discount discount) {this.discount = discount;}//提交订单主流程public void submitOrder(){//计算商品金额int money = balance();System.out.println("商品总金额为:"+money+"元");//优惠减免money = discount.calculate(money);System.out.println("优惠减免后:"+ money+"元,");//保存及支付订单pay(money);//送货上门sendHome();}//计算金额private int balance(){int money = 280;//TODO 累加商品金额return money;}private void sendHome(){System.out.println("满39,免费送货上门");}//提交支付protected abstract void pay(int money);}

策略模式测试:

package com.figo.study2024.pattern.strategy;import com.figo.study2024.pattern.template.MilkTea;
import com.figo.study2024.pattern.template.PearlMilkTea;
import com.figo.study2024.pattern.template.RedBeanMilkTea;/*** @ClassName:PatterTest* @PackageName:com.figo.study2024.pattern.template* @Description:客户端调用类描述* @Date:2024/2/20 12:53* @Author:figo*/
public class PatterTest {public static void main(String[] args) {/*** 购物车这里可以使用模板方法设计模式,继承ShoppingCart* ,重写pay方法即可,这里演示策略模式就不另外写了*/ShoppingCart cart=new ShoppingCart() {@Overrideprotected void pay(int money) {System.out.println("使用云闪付支付");}};//新用户,可以查询用户是否有购买记录,没有的话使用新用户折扣策略cart.setDiscount(new NewerDiscount());//满减,有购买记录,检查是否符合满减策略
//        cart.setDiscount(new FullDiscount());cart.submitOrder();}
}

http://www.yayakq.cn/news/71533/

相关文章:

  • 口碑好的定制网站建设制作公司网站的规划
  • 做网站需要那些东西wordpress 文章缩进
  • 七台河建设网站wordpress referer
  • 响水企业做网站多少钱微网站建设方向
  • 外贸网站分类北京市门头沟有没有做网站的
  • 网站被模仿怎么办品牌网站制作选哪家
  • 烟台网站主关键词在线网页代理服务器
  • 电器网站制作价格网站建设步骤与时间表
  • 威县做网站报价天猫网站设计教程
  • 怎么用 c文件做网站怎样解析网站域名
  • 个人网站模块关于小说网站的一些建设流程
  • 湘潭找个人做网站的佛山网站专家
  • 国外高大上设计网站wordpress注册链接修改
  • 简单网站页面设计新圩做网站公司
  • 请简述网站建设的一般流程图wordpress中视频分集
  • 做最好的色书网站网站rss怎么做
  • 建设网站请示推广公司简介
  • 南宁的网站建设健身网站开发过程中遇到的麻烦
  • 快速搭建一个网站无锡电子商城网站建设
  • 网页设计网站建设招聘手机网站 微信链接怎么做
  • 怎么做一淘宝客网站吗济南网站的优化
  • 网站后台账号密码破解做招商类型的网站
  • 深圳高端网站定制公司河北省建设厅网站备案
  • 昆明好的网站开发公司百度网站优化软件
  • 换友链的网站域名污染查询网站
  • 主机如何做服务器建网站产品展示网站含后台网站模板下载
  • 网站后台口令统一门户网站建设参考规范
  • 黄岛区做网站的wordpress主题mip
  • 简述如何对网站进行推广?双鸭山住房和城乡建设局网站
  • 深圳福田网站建设公司哪家好佛山市锵美装饰有限公司网站建设案例