採用傳統的面向過程方法,實現乙個簡單的計算器——加減乘除的功能,只需要按照順序,一步一步實現即可
其中除以0的情況未處理!
public class mainclass else if(oper.equals("-"))else if(oper.equals("*"))else if(oper.equals("/"))對於上述實現過程,每次操作都需要進行判斷,然後給出結果。}}
對此可以進行處理,建立乙個抽象類operation,包含具體運算運算元;封裝不同操作的類繼承operation,進行專門的運算,以加法給出示例。
public abstract class operationpublic 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 策略模式的應用 設計模式 物件導向語言開發過程中,對各種問題和場景的解決方案的沉澱,是解決問題的套路,提出場景 解決問題 總結沉澱 推廣應用 行為型設計模式 關注物件和行為的分離 設計...