07 2008 檔案

          冒號和他的學生們(連載25)——軟件應變
               摘要: 適應變化的能力是衡量軟件質量的重要標準
          第七課剛一開堂,冒號就提了一個問題:“如果把一個Java程序中所有的private關鍵字換成public,請問該程序還能工作嗎?”。。。

          軟件的難點有二:其一是邏輯的復雜,其二是需求的變化。許多程序員看重前者而看輕后者,大部分時間花在尋求解決方案上,而不是在選擇解決方案上。。。

          軟件之軟,體現(xiàn)在適應變化的能力。。。

          軟件的變化大致分兩種:一種是出于內在需求而作的結構性變化,通常以改善軟件質量為目的,即所謂的重構(refactoring);一種是出于外在需求而作的功能性變化,通常以滿足客戶需要為目的。。。

          信息隱藏雖能將抽象接口與具體實現(xiàn)分離,但仍然封裝在同一類中。橋梁模式則讓二者徹底解耦(decouple),增強了對變化的適應力,具有更大的靈活性和可擴展性。。。  閱讀全文

          posted @ 2008-07-29 00:20 鄭暉 閱讀(1964) | 評論 (3)  編輯

          冒號和他的學生們(連載24)——對象封裝
               摘要: OOP中的封裝與信息隱藏
          “用廣東話說,真是有型有料又有性格啊!”嘆號嘖嘖連聲,“這哪里是在設計軟件,分明是在設計心儀的對象嘛。”。。。

          廣義的封裝僅僅只是一種打包,即package或bundle,是密封的但可以是透明的。。。
          狹義的封裝是在打包的基礎上加上訪問控制(access control),以實現(xiàn)信息隱藏。。。

          抽象意味著用戶可以從高層的接口來看待或使用一類對象,而不用關心它底層的實現(xiàn),而黑盒封裝意味著用戶無權訪問底層的實現(xiàn)。。。

          訪問控制不僅是一種語法限制,也是一種語義規(guī)范。。。

          “通,則大處圓融合一而小處各具其妙;不通,則大處千變萬化而小處無所分別。”冒號又打起了禪語 ,“領會OOP的精髓絕非一年半載之功,但若以抽象與封裝為鑰,必可早日開啟通達之門。。。”  閱讀全文

          posted @ 2008-07-20 16:27 鄭暉 閱讀(2860) | 評論 (3)  編輯

          冒號和他的學生們(連載23)——數(shù)據(jù)抽象
               摘要: 介紹抽象數(shù)據(jù)類型
          問號搶著說:“我知道了:過程抽象的結果是函數(shù),數(shù)據(jù)抽象的結果應該是數(shù)據(jù)類型。”。。。

          數(shù)據(jù)結構強調具體實現(xiàn),側重應用;抽象數(shù)據(jù)類型強調抽象接口,側重設計。。。

          接口是綱,實現(xiàn)是目。綱若不舉,目無以張。。。

          人們多采取‘整體設計以數(shù)據(jù)為中心,局部實現(xiàn)以算法為中心’的方針,以增強系統(tǒng)的可維護性。。。

          數(shù)據(jù)類型的接口與實現(xiàn)的分離,有利于開發(fā)時間的分離以及開發(fā)人員的分離。。。

          抽象——接口與實現(xiàn)相分離;數(shù)據(jù)——以數(shù)據(jù)為中心組織邏輯;類型——單純而定義良好的概念。。。

          抽象——尤其是數(shù)據(jù)抽象——才是OOP的核心和起源,盡管它們并非OOP的專利。。。

          只有貫徹ADT思想,設計出來的類才會是‘萬人迷’:有優(yōu)雅的外形——抽象,有豐富的內涵——數(shù)據(jù),有鮮明的個性——類型。。。  閱讀全文

          posted @ 2008-07-16 12:32 鄭暉 閱讀(2249) | 評論 (6)  編輯

          冒號和他的學生們(連載22)——抽象思維
               摘要: 軟件設計中的抽象思維
          冒號健步走進教室,學員們立刻正襟危坐,進入戰(zhàn)備狀態(tài)。。。

          語言是形,范式是神,這次我們將二者融合,爭取做到形神兼?zhèn)洹!!?

          我們的重心不在知識的枝節(jié),而在知識的本源。因此無論討論Java還是OOP,我們不追求系統(tǒng)和全面,但力求從不同的選點、角度和深度來展示知識的活性。。。

          那么什么是抽象呢?不妨概括為:去粗取精以化繁為簡;由表及里以異中求同。再精煉些,抽象就是作減法和除法。。。

          軟件設計者的任務是將復雜混沌的現(xiàn)實世界映射到精確嚴格的虛擬世界,要完成這種多對一的映射,抽象無疑是必由之路。。。

          這種通過規(guī)范使代碼的功能與實現(xiàn)相分離的方法稱為規(guī)范抽象。。。  閱讀全文

          posted @ 2008-07-11 05:03 鄭暉 閱讀(2386) | 評論 (3)  編輯

          《冒號和他的學生們》寫作提綱
               摘要: 本文系《冒號課堂》(又名《冒號和他的學生們》)系列的目錄提綱,隨著寫作的深入將逐步完善。歡迎大家多提意見!  閱讀全文

          posted @ 2008-07-04 14:41 鄭暉 閱讀(2574) | 評論 (23)  編輯

          導航

          統(tǒng)計

          公告

          博客搬家:http://blog.zhenghui.org
          《冒號課堂》一書于2009年10月上市,詳情請見
          冒號課堂

          留言簿(17)

          隨筆分類(61)

          隨筆檔案(61)

          文章分類(1)

          文章檔案(1)

          最新隨筆

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 邵武市| 鹤岗市| 阿鲁科尔沁旗| 乌兰察布市| 榆树市| 康马县| 宣恩县| 达孜县| 读书| 和林格尔县| 白玉县| 汽车| 塔河县| 蒙山县| 若羌县| 奎屯市| 金川县| 安陆市| 安化县| 青岛市| 新晃| 永福县| 马鞍山市| 静海县| 长白| 宁国市| 潞西市| 如皋市| 札达县| 赣榆县| 三亚市| 湾仔区| 本溪市| 社旗县| 龙胜| 涿州市| 全椒县| 孝感市| 江油市| 中江县| 广东省|