在今天,讀書有時是件“麻煩”事。它需要你付出時間,付出精力,還要付出一份心境。--僅以《大話設計模式》來祭奠那逝去的……
大鳥:“所有編程初學者都會有這樣的問題就直覺的用計算機能夠理解的邏輯來描述和表達待解決的問題及具體的求解過程。這其實是用計算機的方式去思考,比如計算器這個程序,先要求輸入兩個數和運算符號,然后根據運算符號來判斷如何運算,得到結果,這本身沒有錯,但這樣的思維卻使我們的程序只為滿足當前的需求,程序不容易維護、不容易擴展,更不容易復用,從而達不到高質量代碼的要求。”
1.活字印刷,面向對象
“話說三國時期,曹操帶領百萬大軍攻打東吳,大軍在長江赤壁駐扎,軍船連城一片,眼看要滅掉東吳,統一天下,曹操大悅,于是大宴眾文武,在酒席間,曹操詩興大發,不覺吟道:‘喝酒唱歌,人生真爽,……’,眾文武齊呼:‘丞相好詩!’,于是已臣子速命印刷工匠刻板印刷,以便流傳天下。”
“第二天,樣張出來后,曹操一看不妥:‘喝與唱,此話過俗,應改為對酒當歌較好!’,此臣就命工匠重新來過。工匠眼看連夜刻版之工,徹底白費,心中叫苦不迭,只得照辦。”
“第三天,樣張再次出來后,曹操細細一品,覺得不妥:‘人生真爽,太過直接,應改為人生幾何才有意境!’,于是此臣再命工匠重新來過。工匠暈倒……”
“小菜你說,這里問題出在哪里?”大鳥問道。
小菜說:“是不是因為三國時期活字印刷還未發明,所以要改字的時候,就必須整個刻板全部重新刻。”
大鳥:“說的好!如果有了活字印刷,則只需要改四個字就可,其余工作都未白做,豈不妙哉。”
“第一,要改只需改要改之字,此為可維護;第二,這些字并不是這次用完就廢棄了,完全可以在以后的印刷中重用,此為可復用;第三,此詩若要加字,只需另刻字加入即可,此為可擴展;第四,字的排列可能是橫排可能是豎排,此時只需要將活字移動即可滿足需求,此為靈活性好!”
2.面向對象的好處
學習了面向對象的分析設計編程思想,開始考慮通過封裝、繼承和多態把程序的耦合度降低,傳統印刷術的問題就在于所有的字都刻在同一版面上造成耦合度太高所致,開始使用設計模式使得程序更加靈活,容易修改,并且易復用。
文章列表