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

java設(shè)計(jì)模式之簡(jiǎn)單工廠(chǎng)模式

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

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

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

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

相關(guān)文章

最新評(píng)論