论坛首页 Java企业应用论坛

我工作的那点事--学习《设计模式》实例应用(strategy模式)

浏览 1399 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-24   最后修改:2010-02-22
    最近比较郁闷,公司的人事方面不是很如意。
    她在我进公司之前,答应我给我上保险,结果现在告诉我不能替我上保险了。感觉自己被骗了。
   
    我已经自己亲自和有关部门调查过了(前面帖子也写过的)。

1.大体的方案框架:SolveRule

public abstract class SolveRule{

public void begin(){
//开始和公司交涉
}

public abstract void action();//方案解决过程

public void end(){
//解决
}
}


2.具体解决方案:SolveRuleCompany SolveRuleMine SolveRuleThird

public class SolveRuleCompany extends SolveRule{

public void action(){
   //公司提出合理方案
   }
}

public class SolveRuleMine extends SolveRule{

public void action(){
   //我提出合理方案
   }
}

public class SolveRuleThird extends SolveRule{

public void action(){
   //第三方提出合理解决方案
   }
}


3.建立一个解决类,用来提供我可以自由选择方案,毕竟 我是占有优势的,呵呵

public class SolveRuleAction {

  private SolveRule strategy;

  public SolveRuleAction(SolveRule rule){
    this.strategy=rule;
  }

  public void action() {
    strategy.action();
  }

  public void changeSolveRule(SolveRule newRule) {
    strategy = newRule;
  }

}


4.一切都准备好了,下面就是实施过程了

  
public void testReplace(){

  //使用第一套替代方案
    SolveRuleAction solver=new SolveRuleAction(new SolveRuleCompany());
    solver.action();

  //使用第二套替代方案
    SolveRuleAction solver=new SolveRuleAction(new SolveRuleMine());
    solver.action();

  //使用第三套替代方案
    SolveRuleAction solver=new SolveRuleAction(new SolveRuleThird());
    solver.action();
  }


哈哈,没想到真的可以学以致用。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics