一个报价管理系统
在一些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));根据实际价格得到报价
}
}
原文地址:http://blog.csdn.net/u014293306/article/details/46277247