Java设计模式之“策略模式”

今天学习多线程的时候,了解到多线程的Thread和Runnable中都有策略模式的提现,所以特意学了一下策略模式。

策略模式的三个组成部分分别为:抽象策略角色、具体策略角色、环境角色(策略类的实例作为环境角色的成员变量)

翻译成我们容易理解的对应关系就是

抽象策略角色:接口

具体策略角色:接口实现类

环境角色:调用接口的类(里面必须有一个类型为抽象策略角色的成员变量)

概念:策略模式就是事先准备好一系列算法,这些算法之间可以相互代替,且算法与调用的客户端相互独立。


话不多说,直接上代码,至于策略模式的优缺点,先读完下面的代码再谈更容易理解

代码模拟场景:计算每月工资和奖金需要纳税的总金额

/**
 * 抽象策略角色
 * @Date: 2019/4/16 14:44
 */
public interface TaxCount {

    double count(double salary,double bouns);

}
/**
 * 具体策略角色(策略类)
 * @Date: 2019/4/16 14:51
 */
public class SimpleTaxCount implements TaxCount{

    //工资纳税1%
    private static final double SALARY_RATE = 0.1;
    //奖金纳税1.5%
    private static final dou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值