04工廠模式方法例項實現 計算器

2021-09-20 03:59:38 字數 1968 閱讀 5067

採用傳統的面向過程方法,實現乙個簡單的計算器——加減乘除的功能,只需要按照順序,一步一步實現即可

其中除以0的情況未處理!

public class mainclass else if(oper.equals("-"))else if(oper.equals("*"))else if(oper.equals("/"))

}}

對於上述實現過程,每次操作都需要進行判斷,然後給出結果。

對此可以進行處理,建立乙個抽象類operation,包含具體運算運算元;封裝不同操作的類繼承operation,進行專門的運算,以加法給出示例。

public abstract class operation 

public void setnum1(double num1)

public double getnum2()

public void setnum2(double num2)

public abstract double getresult();

}

public class addoperation extends operation

}

那麼,當需要進行加法操作時,只需要例項化乙個加法運算器,set相應的運算元,然後獲得結果

operation addoperation = new addoperation();

addoperation.setnum1(oper1);

addoperation.setnum2(oper2);

double result = addoperation.getresult();

system.out.println(result);

但是這有乙個明顯的缺陷,就是當進行不同運算時,需要例項化不同的物件,對此可以用工廠模式的方法來優化

建立乙個核心工廠類

public inte***ce operationfactory
建立乙個乘法的具體工廠

public class mutiplyoperationfactory implements operationfactory 

}

操作實現main中:

scanner scanner = new scanner(system.in);

system.out.println("-------計算器--------");

system.out.println("-------輸入第乙個數--------");

string num1 = scanner.nextline();

/* system.out.println("-------輸入操作符--------");

string oper = scanner.nextline();*/

system.out.println("-------輸入第二個數--------");

string num2 = scanner.nextline();

double oper1 = double.valueof(num1);

double oper2 = double.valueof(num2);

operationfactory operationfactory = new mutiplyoperationfactory();

operation muloperation = operationfactory.getoperation();

muloperation.setnum1(oper1);

muloperation.setnum2(oper2);

system.out.println(muloperation.getresult());

注:其他的乘法類自己實現,同加法類似

工廠方法模式 實現計算器

工廠方法模 式 定義了乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到了子類。工廠方法模式可以與簡單工廠模式相對照,功能均是例項化物件,只是簡單工廠方法例項化物件是在case語句裡面,而工廠方法模式例項化物件延遲到了子類。增強了擴張性,但是也加重了客戶端的負擔。缺點 ...

MVP 模式 計算器例項

不了解的朋友,可以閱讀了解一下 model view presenter 我製作了乙個計算器的程式,分別提供了webform 和 winform 的ui.兩套ui的實現 winform class calculateform form,icalculateform webform class def...

設計模式 策略模式和簡單工廠實現計算器

設計模式 策略模式和簡單工廠的結合 1 策略模式 strategy 介紹和優缺點 2 策略模式和簡單工廠的結合 3 策略模式的應用 設計模式 物件導向語言開發過程中,對各種問題和場景的解決方案的沉澱,是解決問題的套路,提出場景 解決問題 總結沉澱 推廣應用 行為型設計模式 關注物件和行為的分離 設計...