首页 > 其他 > 详细

设计模式下的策略模式

时间:2021-06-02 19:00:13      阅读:8      评论:0      收藏:0      [点我收藏+]

       策略模式是设计模式的一种,它可以简化我们重复代码的出现,主要体现在客户端传参的修改。下面给出一个具体的例子:

       

public interface MemberStrategy {

/**
* 计算图书的价格
* @param bookPrice 图书的原价
* @return 打折后的价格
*/

public double calcPrice(double bookPrice);
}

public class ChujiStrategy implements MemberStrategy {

@Override
public double calcPrice(double bookPrice) {
System.out.println("对于初级会员没有会员折扣");
return bookPrice;
}
}

public class ZhongjiStrategy implements MemberStrategy{
@Override
public double calcPrice(double bookPrice) {
System.out.println("对于中级会员折扣为10%");
return bookPrice-bookPrice * 0.1;
}
}

public class GaojiStrategy implements MemberStrategy {
@Override
public double calcPrice(double bookPrice) {
System.out.println("对于高级会员折扣为20%");
return bookPrice-bookPrice * 0.2;
}
}

/***
* 一个公共类,通过调用公共类的方法,作为桥梁进入每个对象的具体方法
*
*/
public class Price {

private MemberStrategy memberStrategy;

public Price(MemberStrategy memberStrategy) {
this.memberStrategy = memberStrategy;
}

public double count(double bookPrice){
double price=memberStrategy.calcPrice(bookPrice);
return price;
}

}

/***
*策略模式
* 所有的策略都是客户端提供,服务端只是调用
*
*/
public class Client {

public static void main(String[] args) {
//MemberStrategy strategy=new ChujiStrategy();
//MemberStrategy strategy=new ZhongjiStrategy();
MemberStrategy strategy=new GaojiStrategy();
Price price=new Price(strategy);

double quote=price.count(300);
System.out.println("图书的最终价格为:" + quote);
}

}


设计模式下的策略模式

原文:https://www.cnblogs.com/zhaoyangxuan/p/14841971.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!