07 2008 檔案

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

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

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

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

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

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

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

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

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

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

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

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

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

          數(shù)據(jù)結(jié)構(gòu)強(qiáng)調(diào)具體實現(xiàn),側(cè)重應(yīng)用;抽象數(shù)據(jù)類型強(qiáng)調(diào)抽象接口,側(cè)重設(shè)計。。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          導(dǎo)航

          統(tǒng)計

          公告

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

          留言簿(17)

          隨筆分類(61)

          隨筆檔案(61)

          文章分類(1)

          文章檔案(1)

          最新隨筆

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 虎林市| 乌拉特前旗| 西藏| 无极县| 甘泉县| 揭西县| 上思县| 东平县| 岱山县| 民勤县| 南昌市| 商都县| 濮阳市| 疏附县| 徐闻县| 东方市| 囊谦县| 怀安县| 邵阳县| 防城港市| 嘉峪关市| 新晃| 天气| 竹北市| 小金县| 辰溪县| 长兴县| 泰安市| 巴林右旗| 巴林左旗| 海口市| 迁安市| 光山县| 临漳县| 西和县| 奉贤区| 嘉黎县| 文成县| 常德市| 大渡口区| 昌图县|