最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

小菜編程成長記(一 面試受挫——代碼無錯就是好?)第2/3頁

 更新時間:2006年10月17日 00:00:00   作者:  

三 復制VS復用

小菜:“我明白了,他說用任意一種面向?qū)ο笳Z言實現(xiàn),那意思就是要用面向?qū)ο蟮木幊谭椒ㄈ崿F(xiàn),對嗎?OK,這個我學過,只不過當時我沒想到而已?!?br>
大鳥:“所有編程初學者都會有這樣的問題,就是碰到問題就直覺的用計算機能夠理解的邏輯來描述和表達待解決的問題及具體的求解過程。這其實是用計算機的方式去思考,比如計算器這個程序,先要求輸入兩個數(shù)和運算符號,然后根據(jù)運算符號判斷選擇如何運算,得到結(jié)果,這本身沒有錯,但這樣的思維卻使得我們的程序只為滿足實現(xiàn)當前的需求,程序不容易維護,不容易擴展,更不容易復用。從而達不到高質(zhì)量代碼的要求?!?

小菜:“鳥哥呀,我有點糊涂了,如何才能容易維護,容易擴展,又容易復用呢,能不能具體點?”

大鳥:“比如說,我現(xiàn)在要求你再寫一個windows的計算器,你現(xiàn)在的代碼能不能復用呢?”

小菜:“那還不簡單,把代碼復制過去不就行了嗎?改動又不大,不算麻煩?!?br>
大鳥:“小菜看來還是小菜呀,有人說初級程序員的工作就是Ctrl+C和Ctrl+V,這其實是非常不好的編碼習慣,因為當你的代碼中重復的代碼多到一定程度,維護的時候,可能就是一場災(zāi)難。越大的系統(tǒng),這種方式帶來的問題越嚴重,編程有一原則,就是用盡可能的辦法去避免重復。想想看,你寫的這段代碼,有哪些是和控制臺無關(guān)的,而只是和計算器有關(guān)的?”

四 業(yè)務(wù)的封裝

小菜:“你的意思是分一個類出來? 哦,對的,讓計算和顯示分開。”

大鳥:“準確的說,就是讓業(yè)務(wù)邏輯與界面邏輯分開,讓它們之間的耦合度下降。只有分離開,才容易達到容易維護或擴展?!?br>
小菜:“讓我來試試看。”
復制代碼 代碼如下:

class Program
{
static void Main(string[] args)
{
try
{
Console.Write("請輸入數(shù)字A:");
string strNumberA = Console.ReadLine();
Console.Write("請選擇運算符號(+、-、*、/):");
string strOperate = Console.ReadLine();
Console.Write("請輸入數(shù)字B:");
string strNumberB = Console.ReadLine();
string strResult = "";

strResult = Convert.ToString(Operation.GetResult(Convert.ToDouble(strNumberA),Convert.ToDouble(strNumberB),strOperate));

Console.WriteLine("結(jié)果是:" + strResult);

Console.ReadLine();

}
catch (Exception ex)
{
Console.WriteLine("您的輸入有錯:" + ex.Message);
}
}
}

public class Operation
{
public static double GetResult(double numberA,double numberB,string operate)
{
double result = 0d;
switch (operate)
{
case "+":
result = numberA + numberB;
break;
case "-":
result = numberA - numberB;
break;
case "*":
result = numberA * numberB;
break;
case "/":
result = numberA / numberB;
break;
}
return result;
}
}


小菜:“鳥哥,我寫好了,你看看!”

大鳥:“哈,孺鳥可教也,:),寫得不錯,這樣就完全把業(yè)務(wù)和界面分離了。”

小菜心中暗罵:“你才是鳥呢。” 口中說道:“如果你現(xiàn)在要我寫一個Windows應(yīng)用程序的計算器,我就可以復用這個運算類(Operation)了?!?

大鳥:“不單是Windows程序,Web版程序需要運算可以用它,PDA,手機等需要移動系統(tǒng)的軟件需要運算也可以用它呀。”

小菜:“哈,面向?qū)ο蟛贿^如此。下會寫類似代碼不怕了?!?

大鳥:“別急,僅此而已,實在談不上完全面向?qū)ο螅阒挥昧嗣嫦驅(qū)ο笕筇匦缘囊粋€,還兩個沒用呢?”

小菜:“面向?qū)ο笕筇匦圆痪褪欠庋b、繼承和多態(tài)嗎,這里我用到的應(yīng)該是封裝。這還不夠嗎?…………我實在看不出,這么小的程序如何用到繼承。至于多態(tài),其它我一直也不太了解它到底有什么好處,如何使用它?!?

大鳥:“慢慢來,有的東西好學了,你好好想想吧,我要去“魔獸”了,改時聊?!?

相關(guān)文章

  • C#實現(xiàn)圖片縮略圖功能的示例詳解

    C#實現(xiàn)圖片縮略圖功能的示例詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)圖片縮略圖的功能,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C#生成本地配置文件的實現(xiàn)示例

    C#生成本地配置文件的實現(xiàn)示例

    本文將介紹如何使用C#語言生成本地配置文件,以便為應(yīng)用程序提供靈活的配置選項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • Unity實現(xiàn)答題系統(tǒng)的示例代碼

    Unity實現(xiàn)答題系統(tǒng)的示例代碼

    這篇文章主要和大家分享了利用Unity制作一個答題系統(tǒng)的示例代碼,文中的實現(xiàn)方法講解詳細,對我們學習或工作有一定的幫助,需要的可以參考一下
    2022-05-05
  • C#實現(xiàn)ListView選中項向上或向下移動的方法

    C#實現(xiàn)ListView選中項向上或向下移動的方法

    這篇文章主要介紹了C#實現(xiàn)ListView選中項向上或向下移動的方法,通過兩個按鈕點擊事件實現(xiàn)ListView選中項的上下移動功能,需要的朋友可以參考下
    2015-06-06
  • C#實現(xiàn)壓縮pdf文件的示例代碼

    C#實現(xiàn)壓縮pdf文件的示例代碼

    PDF 文件如果文件太大則會影響傳輸效果同時也會占用過多磁盤空間,所以這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)有效地壓縮 PDF 文件,需要的可以參考下
    2023-11-11
  • c# SqlDataAdapter中的Fill是怎么實現(xiàn)的

    c# SqlDataAdapter中的Fill是怎么實現(xiàn)的

    這篇文章主要介紹了c# SqlDataAdapter中的Fill是怎么實現(xiàn)的,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#修改IIS站點framework版本號的方法

    C#修改IIS站點framework版本號的方法

    這篇文章主要介紹了C#修改IIS站點framework版本號的方法,涉及C#調(diào)用使用ASP.NET IIS注冊工具Aspnet_regiis.exe進行IIS站點framework版本號修改的方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • c#實現(xiàn)字符串反序輸出字符串的實例

    c#實現(xiàn)字符串反序輸出字符串的實例

    下面小編就為大家分享一篇c#實現(xiàn)字符串反序輸出字符串的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#實現(xiàn)軟件開機自動啟動的兩種常用方法總結(jié)

    C#實現(xiàn)軟件開機自動啟動的兩種常用方法總結(jié)

    這篇文章主要為大家詳細介紹了C#實現(xiàn)軟件開機自動啟動的兩種常用方法,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • 利用C#代碼實現(xiàn)圖片旋轉(zhuǎn)360度

    利用C#代碼實現(xiàn)圖片旋轉(zhuǎn)360度

    本文介紹利用C#代碼實現(xiàn)圖片旋轉(zhuǎn)360度,具體實例代碼已附上,僅供大家參考,希望對大家有所幫助
    2016-11-11

最新評論

阿瓦提县| 吉安市| 陆川县| 鄂温| 纳雍县| 胶州市| 金乡县| 两当县| 荔波县| 桂东县| 全州县| 工布江达县| 冷水江市| 石首市| 兴化市| 谢通门县| 福安市| 常州市| 彩票| 星子县| 静安区| 富民县| 淮阳县| 嵊泗县| 教育| 安多县| 石城县| 玉田县| 兰西县| 台东县| 淳安县| 大连市| 道孚县| 惠东县| 太仆寺旗| 南宁市| 井研县| 梅州市| 彰化市| 阿城市| 建昌县|