`
隐形的翅膀
  • 浏览: 486817 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

策略模式

 
阅读更多
策略模式

策略模式就是定义了一系列的算法,并将每一个算法封装起来,而他们可以相互替换,策略模式让算法独立于客户端变化

薪资计算

public interface Salary{
   ...
}

public interface Insurance{
   ....
}

public interface Tax{
   ....
}


实现河北,吉林的具体算法实现类

public class HeBeiSalary implements Salary
public class JiLinSalary implements Salary

public class HeBeiInsurance implements Insurance
public class JiLinInsurance implements Insurance

public class HeBeiTax implements Tax
public class JiLinTax implements Tax



修改计算算法的主题类,使得算法可替代


public class SalaryTemplate{
    
    private Salary salary;
    private Insurance insurance;
    private Tax tax;
    
    public void computer(){
       salary.computerSalary();
       insurance.computerInsurance();
       tax.computerTax();
    }
    
    public Salry getSalary()
    {
       return salary;
    }
    
     public void setSalary(Salary salary){
        this.salry = salary
     }
     为insureance, tax 变量提供get, set 方法
}


计算某一地的薪资


SalaryTemplate salaryTemplate = new SalaryTemplate();

salaryTemplate.setSalary(new HeBeiSalary());
salaryTemplate.setInsurance(new HeBeiInsurance());
salaryTemplate.setTax(new HeBeiTax());
salaryTemplate.computer();

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics