(續上篇)
小菜:「我明白了,他說用任意一種物件導向語言實現,那意思就是要用物件導向的程式設計方法去實現,對嗎?ok,這個我學過,只不過當時我沒想到而已。」
大鳥:「所有程式設計初學者都會有這樣的問題,就是碰到問題就直覺的用計算機能夠理解的邏輯來描述和表達待解決的問題及具體的求解過程。這其實是用計算機的方式去思考,比如計算器這個程式,先要求輸入兩個數和運算符號,然後根據運算符號判斷選擇如何運算,得到結果,這本身沒有錯,但這樣的思維卻使得我們的程式只為滿足實現當前的需求,程式不容易維護,不容易擴充套件,更不容易復用。從而達不到高質量**的要求。」
小菜:「鳥哥呀,我有點糊塗了,如何才能容易維護,容易擴充套件,又容易復用呢,能不能具體點?」
大鳥:「比如說,我現在要求你再寫乙個windows的計算器,你現在的**能不能復用呢?」
小菜:「那還不簡單,把**複製過去不就行了嗎?改動又不大,不算麻煩。」
大鳥:「小菜看來還是小菜呀,有人說初級程式設計師的工作就是ctrl+c和ctrl+v,這其實是非常不好的編碼習慣,因為當你的**中重複的**多到一定程度,維護的時候,可能就是一場災難。越大的系統,這種方式帶來的問題越嚴重,程式設計有一原則,就是用盡可能的辦法去避免重複。想想看,你寫的這段**,有哪些是和控制台無關的,而只是和計算器有關的?」
(待續)
小菜程式設計成長記(三 複製VS復用)
續上篇 小菜 我明白了,他說用任意一種物件導向語言實現,那意思就是要用物件導向的程式設計方法去實現,對嗎?ok,這個我學過,只不過當時我沒想到而已。大鳥 所有程式設計初學者都會有這樣的問題,就是碰到問題就直覺的用計算機能夠理解的邏輯來描述和表達待解決的問題及具體的求解過程。這其實是用計算機的方 式去...
小菜程式設計成長記系列
網上一位叫慈龍的朋友幫我把之前的 小菜程式設計成長記 整理成了pdf文件,非常感謝他的工作。儘管此系列還沒有寫完,此前的文章也有不少瑕疵,不過如果此pdf可以讓更多的朋友喜歡上物件導向設計 喜歡上設計模式 開始加入學習應用設計模式的行列來,那我還是非常願意此系列文章的推廣的,畢竟通過對話的方式來入門...
小菜鳥成長記
include define n 100 typedef struct book book int num 0,pnum int arrin book a,int pnum 輸入陣列元素,個數num由程式中自己確定。return i void arrout book a,int num 輸出陣列各元...