我工作的那點事--學習《設計模式》例項應用(strategy模式)

biqing0427發表於2007-11-20

我已經自己親自和有關部門調查過了(前面帖子也寫過的),所以自己想了幾個解決方法

[@more@]今天一上班就看見那張冰冷的臉,本來想和她打招呼,結果也沒了興趣,她現在和我處在敵對狀態。主要原因:
她在我進公司之前,答應我給我上保險,結果現在告訴我不能替我上保險了。感覺自己被騙了,所以對她沒有好言,再說我有證據在手,怕什麼啊,所以堅決要和她鬥爭到底。

我已經自己親自和有關部門調查過了(前面帖子也寫過的),所以自己想了幾個解決方法,反正和公司鬥,多做點準備了。

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();
  }

哈哈,沒想到真的可以學以致用。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9879276/viewspace-983082/,如需轉載,請註明出處,否則將追究法律責任。

相關文章