面試題目:請用任意一種語言以物件導向方式編寫乙個計算器**
最初始**
public void dooperation()
//輸入
console.write("請輸入數字a");
string a = console.readline();
console.write("請選擇計算符號+,-,* ,/");
string b = console.readline();
console.write("請輸入數字c");
string c = console.readline();
string d = "";
//判斷計算過程
if (b == "+")
if (b == "-")
if (b == "*")
if (b == "/")
//輸出結果
console.readline("結果是:" + d);
上述**存在初學者最基本的幾個問題點
1:**的規範性 a b c d
2:對於if 的判斷分支對計算機而言每個分支都要去做判斷,等於做了三次無效工.
3:除法分支沒有做最基本的分母零校驗
修改後**如下:
///
/// 計算加減乘除的計算器方法
///
public static void dooperation()
else
break;
//輸出結果
console.readline("結果是:" + strresult);
}但是就上面而言是否達到了面試官的要求了呢?物件導向 這裡有物件這個概念嗎?以上寫法都是程式設計師根據自己的思維邏輯思路寫下來的,雖然結果出來了但是不是面試官要的。
個人體會:目前的我也一直出現在這個層次,真的非常的可怕.一旦碰到問題就直覺的用計算機能夠理解的邏輯來描述和表達待解決的問題及具體的求解過程,其實是用計算機的方式去思考,譬如上述程式,輸入兩個數字 輸出乙個結果,這本身沒有錯誤,但是這樣的思維卻使得我們的程式只為滿足實現當前的需求,程式不容易維護,不容易擴充套件,更不讓容易復用,從而達不到高質量**的要求.
下一節我們就針對上述問題引出物件導向方法
設計模式 1 工廠模式
本篇部落格主要是總結一下自己對工廠模式的認識,例子可能不太恰當,uml類圖也可能線用錯。不過思想還是正確的 望各位指出錯誤 簡單工廠模式嚴格意義上不屬於設計模式 2.1 抽象產品角色 是具體產品角色的共同父類,提供了乙個標準介面。e.g 將計算機專業看成乙個抽象產品角色 public abstrac...
設計模式 工廠模式 1
2.工廠方法模式 3.抽象工廠模式 public inte ce fruit public class banana implements fruit public class implements fruit public class fruitfactory public static frui...
設計模式 1 工廠模式
介面行模式 職責型模式 構造型模式 不通過類建構函式來建立物件,使用特定的模式來為客戶類建立例項物件 操作型模式 擴充套件型模式 在建立類時,通常可以同時定義多個建構函式來建立這個類的例項。然而有些時候,客戶 雖然需要某個物件,但是卻不關心這個物件究竟是由哪個類建立而來。工廠模式的意圖是定義乙個用於...