欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java設(shè)計模式之簡單工廠模式

 更新時間:2016年12月08日 17:05:41   作者:jiayayao  
這篇文章主要為大家詳細(xì)介紹了java設(shè)計模式之簡單工廠模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在編寫一個計算器程序時,可以將業(yè)務(wù)邏輯和顯示分離,業(yè)務(wù)邏輯封裝為一個類(封裝);如果要新添加一種運算,可以先創(chuàng)建一個Operation的基類,然后各種運算從Operation類繼承,并實現(xiàn)GetResult()虛函數(shù),這時添加新的運算只需要派生一個新的類,即不需要之前的運算參與編譯。如何讓計算器知道我是希望使用哪種運算呢?應(yīng)該考慮單獨的類來做這個創(chuàng)造實例的過程,這就是工廠。創(chuàng)建一個OperationFactory類,傳入?yún)?shù),函數(shù)createOperate就可以實例化出合適的對象。

Java代碼如下:

public class OperationFactory {
 public static abstract class Operation
 {  
  private double _numberA = 0;
  private double _numberB = 0;
  
  public double get_numberA() {
   return _numberA;
  }

  public void set_numberA(double _numberA) {
   this._numberA = _numberA;
  }

  public double get_numberB() {
   return _numberB;
  }

  public void set_numberB(double _numberB) {
   this._numberB = _numberB;
  }
  
  abstract double GetResult();
  // TODO Auto-generated constructor stub
 }
 
 public static class OperationAdd extends Operation
 {
  double GetResult() 
  {
   double result = get_numberA() + get_numberB();
   return result;
  }  
 }
 
 public static class OperationSub extends Operation
 {
  double GetResult() {
   double result = get_numberA() - get_numberB();
   return result; 
  }
 }
 
 
 public static Operation createOperate(String operate){
  Operation oper = null;
  if (operate.equals("+")) {
   oper = new OperationAdd();
  }
  else if (operate.equals("-")) {
   oper = new OperationSub();
  }

  return oper;
 }

 public static void main(String[] args) {
  Operation oper;
  oper = OperationFactory.createOperate("+");
  oper.set_numberA(1);
  oper.set_numberB(2);
  double result = oper.GetResult();
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論