一个报价管理系统
在一些CRM(客户关系管理)系统中,会有一个单独的报价管理模块,处理复杂的报价功能
普通客户:全价
老客户:根据年限,给予折扣
大客户:根据累计消费,给予折扣
客户购买量:对于新老客户都适用
报价人员职位高低:
如何实现????
一个支付策略的接口
package com.cmc; //一个报价接口类,提供报价的接口,传入的参数为钱数 public interface OfferSuper { public abstract double offerCash(double money); }
三种支付方式分别实现上面的接口
大客户支付策略:
package com.cmc; //大客户类,实现了报价接口并重写了支付方法 public class OfferLargeCus implements OfferSuper { public double offerCash(double money) { // TODO Auto-generated method stub System.out.println("对于大客户,统一折扣10%"); return money*0.9; } }
普通客户支付策略:
package com.cmc; //普通客户类,实现了报价接口并重写了报价方法 public class OfferNormal implements OfferSuper { public double offerCash(double money) { System.out.println("对于新客户或者是普通客户,没有折扣"); return money; } }
老客户支付策略:
package com.cmc; //老客户类,实现了报价接口并重写了报价方法 public class OfferOldCus implements OfferSuper{ public double offerCash(double money) { // TODO Auto-generated method stub System.out.println("对于老客户,统一折扣5%"); return money*0.095; } }
客户类,根据传入的支付策略实现不同的报价:
package com.cmc; public class Custom { private OfferSuper os; public Custom(OfferSuper offersuper){ this.os = offersuper; } public double GetResult(double money){ return os.offerCash(money); } }
客户端测试一下:
package com.cmc; public class start { public static void main(String[] args) { OfferLargeCus olc = new OfferLargeCus();//创建一个老客户的报价策略 Custom cus = new Custom(olc);//把上面的报价策略传入到custom中 System.out.print(cus.GetResult(1000));根据实际价格得到报价 } }
时间: 2024-10-28 19:58:09