OOD啟思錄

出版時(shí)間:2011-12  出版社:人民郵電  作者:里爾  頁數(shù):358  譯者:鮑志云  
Tag標(biāo)簽:無  

內(nèi)容概要

  本書提供了改進(jìn)面向?qū)ο笤O(shè)計(jì)的真知灼見。全書共11章,總結(jié)出了60多條面向?qū)ο笤O(shè)計(jì)(OOD)的指導(dǎo)原則。這些經(jīng)驗(yàn)原則涵蓋了從類到對(duì)象(主要強(qiáng)調(diào)它們之間的關(guān)系,包括關(guān)聯(lián)、使用、包含、單繼承、多繼承)到面向?qū)ο笪锢碓O(shè)計(jì)的重要主題。本書將幫助你理解經(jīng)驗(yàn)原則和“設(shè)計(jì)模式”這一流行概念之間的相互作用。你可以借助經(jīng)驗(yàn)原則發(fā)現(xiàn)設(shè)計(jì)中所存在的某一方面的問題,而設(shè)計(jì)模式則提供了解決方案。
  本書對(duì)各個(gè)層次的開發(fā)者都有價(jià)值,新手能借助本書走上通向面向?qū)ο缶幊痰目燔嚨?,想提升自己的面向?qū)ο箝_發(fā)水準(zhǔn)的老手則會(huì)受益于本書深具洞察力的分析。本書提供了讓你成為更好的軟件開發(fā)者的途徑。

作者簡介

作者:(美國)里爾 (Arthur J.Riel) 譯者:鮑志云

書籍目錄

第1章 面向?qū)ο缶幊痰膭?dòng)因
1.1 革命家、改革家與面向?qū)ο蠓缎?br />1.2 Frederick Brooks觀點(diǎn):非根本復(fù)雜性與根本復(fù)雜性
1.3 瀑布模型
1.4 迭代模型
1.5 構(gòu)造原型:相同語言與不同語言
1.6 軟件復(fù)用性
1.7 優(yōu)秀設(shè)計(jì)者階層
術(shù)語表
第2章 類和對(duì)象:面向?qū)ο蠓缎偷慕ú?br />2.1 類和對(duì)象導(dǎo)引
2.2 消息和方法
2.3 類耦合與內(nèi)聚
2.4 動(dòng)態(tài)語義
2.5 抽象類
2.6 角色與類
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第3章 應(yīng)用程序布局:面向動(dòng)作與面向?qū)ο?br />3.1 應(yīng)用程序的不同布局
3.2 面向動(dòng)作范型何時(shí)適用
3.3 問題:全能類(行為表現(xiàn))
3.4 系統(tǒng)功能不良分布的另一個(gè)例子
3.5 問題:全能類(數(shù)據(jù)表現(xiàn))
3.6 問題:泛濫成災(zāi)的類
3.7 代理類的角色
3.8 用途考察:單獨(dú)實(shí)體和控制類
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第4章 類和對(duì)象的關(guān)系
4.1 類和對(duì)象關(guān)系導(dǎo)引
4.2 使用關(guān)系
4.3 實(shí)現(xiàn)使用關(guān)系的6種不同方法
4.4 使用關(guān)系的經(jīng)驗(yàn)原則
4.5 精確調(diào)整兩個(gè)類之間的協(xié)作量
4.6 包含關(guān)系
4.7 類之間的語義約束
4.8 屬性與被包含的類
4.9 包含關(guān)系的更多經(jīng)驗(yàn)原則
4.1 0使用和包含的關(guān)系
4.1 1值包含與引用包含
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第5章 繼承關(guān)系
5.1 繼承關(guān)系導(dǎo)引
5.2 在派生類中覆寫基類方法
5.3 在基類中使用保護(hù)區(qū)域
5.4 繼承層次結(jié)構(gòu)的寬度和深度
5.5 C++的劃分:私有、保護(hù)和公有繼承
5.6 一個(gè)現(xiàn)實(shí)世界中的特化例子
5.7 經(jīng)驗(yàn)原則:尋求設(shè)計(jì)復(fù)雜性和靈活性的平衡
5.8 一個(gè)現(xiàn)實(shí)世界中的泛化例子
5.9 多態(tài)機(jī)制
5.10把繼承作為復(fù)用機(jī)制的一個(gè)問題
5.11用繼承實(shí)現(xiàn)中斷驅(qū)動(dòng)架構(gòu)的方案
5.12繼承層次結(jié)構(gòu)與屬性
5.13混淆:繼承的需求與對(duì)象動(dòng)態(tài)語義
5.14用繼承來隱藏類的實(shí)現(xiàn)
5.15把對(duì)象誤當(dāng)作繼承類
5.16把需概括對(duì)象誤作需在運(yùn)行時(shí)創(chuàng)建類
5.17在派生類中屏蔽基類方法的嘗試
5.18對(duì)象可選部分的實(shí)現(xiàn)
5.19沒有最優(yōu)解的問題
5.20復(fù)用組件與復(fù)用框架
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第6章 多重繼承
6.1 多重繼承導(dǎo)引
6.2 多重繼承的常見誤用
6.3 多重繼承的正當(dāng)使用
6.4 不支持多重繼承的語言中的非根本復(fù)雜性
6.5 用到多重繼承的框架
6.6 運(yùn)用多重繼承:設(shè)計(jì)mixin
6.7 DAG多重繼承
6.8 可選包含的不良實(shí)現(xiàn)造成的不當(dāng)DAG多重繼承
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第7章 關(guān)聯(lián)關(guān)系
7.1 關(guān)聯(lián)導(dǎo)引
7.2 用引用屬性實(shí)現(xiàn)關(guān)聯(lián)
7.3 用第三方類實(shí)現(xiàn)關(guān)聯(lián)
7.4 在包含關(guān)系和關(guān)聯(lián)關(guān)系間取舍
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第8章 與特定類相關(guān)的數(shù)據(jù)及行為
8.1 類相關(guān)與對(duì)象相關(guān)數(shù)據(jù)及行為導(dǎo)引
8.2 用元類來表示類相關(guān)數(shù)據(jù)及行為
8.3 用語言層面關(guān)鍵字來實(shí)現(xiàn)類相關(guān)與對(duì)象相關(guān)數(shù)據(jù)及行為
8.4 C++中的元類
8.5 有用的抽象類,但不是基類
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第9章 面向?qū)ο笪锢碓O(shè)計(jì)
9.1 面向?qū)ο筮壿嬙O(shè)計(jì)和物理設(shè)計(jì)的角色
9.2 創(chuàng)建面向?qū)ο蟀b器
9.3 面向?qū)ο笙到y(tǒng)中的持久化
9.4 面向?qū)ο髴?yīng)用程序中的內(nèi)存管理問題
9.5 可復(fù)用組件的最小公有接口
9.6 實(shí)現(xiàn)安全的淺拷貝
9.7 并行面向?qū)ο缶幊?br />9.8 用非面向?qū)ο笳Z言實(shí)現(xiàn)面向?qū)ο笤O(shè)計(jì)
術(shù)語表
經(jīng)驗(yàn)原則小結(jié)
第10章 經(jīng)驗(yàn)原則和模式的關(guān)系
10.1 經(jīng)驗(yàn)原則與模式
10.2 設(shè)計(jì)變換模型的傳遞性
10.3 設(shè)計(jì)變換模式的自反性
10.4 其他設(shè)計(jì)變換模式
10.5 未來研究
第11章 在面向?qū)ο笤O(shè)計(jì)中使用經(jīng)驗(yàn)原則
11.1 ATM問題
11.2 選擇方法學(xué)
11.3 產(chǎn)生ATM對(duì)象模型的第一次嘗試
11.4 給我們的對(duì)象模型增加行為
11.5 非根本復(fù)雜性帶來的顯式情況分析
11.6 在不同地址對(duì)象間傳遞消息
11.7 交易處理
11.8 回到ATM的領(lǐng)域
11.9 其他雜類問題
11.10小結(jié)
附錄A 經(jīng)驗(yàn)原則總結(jié)
附錄B C++中的內(nèi)存泄漏
附錄C C++實(shí)例精選
本書中引用到的其他圖書
參考文獻(xiàn)

章節(jié)摘錄

版權(quán)頁:插圖:因?yàn)椋惖拿植粌H意味著一組屬性,還表示實(shí)體的行為。這種數(shù)據(jù)和行為的雙向聯(lián)系是面向?qū)ο蠓缎偷幕?。一個(gè)對(duì)象一定會(huì)有如下4個(gè)重要方面:1.它自己的身份標(biāo)識(shí)(可能只是它在內(nèi)存中的地址);2.它的類的屬性(通常是靜態(tài)的)和這些屬性的值(通常是動(dòng)態(tài)的);3.它的類的行為(從實(shí)現(xiàn)者的角度看);4.它的類的公開接口(從用戶的角度看)。將這一討論置于軟件開發(fā)的語境,類可以被實(shí)現(xiàn)為一個(gè)結(jié)構(gòu)定義以及一組可以處理這個(gè)結(jié)構(gòu)的操作。在過程式語言中,任給一個(gè)函數(shù),很容易找出數(shù)據(jù)依賴性。只要檢查函數(shù)實(shí)現(xiàn)并看一下所有參數(shù)、返回值以及局部變量聲明的數(shù)據(jù)類型就可以了。但是,如果你想要找出一個(gè)數(shù)據(jù)定義的函數(shù)依賴性,那你就不得不檢查全部代碼,尋找依賴于這個(gè)數(shù)據(jù)的函數(shù)。而在面向?qū)ο竽P椭校瑑煞N依賴性(函數(shù)對(duì)數(shù)據(jù)的依賴性和數(shù)據(jù)對(duì)函數(shù)的依賴性)都現(xiàn)成擺明在那里了。對(duì)象是類數(shù)據(jù)類型的變量。它們的內(nèi)部細(xì)節(jié)只對(duì)同它們的類關(guān)聯(lián)的那組函數(shù)可見。這種對(duì)內(nèi)部細(xì)節(jié)的訪問限制稱作信息隱藏(informationhiding)。在很多面向?qū)ο笳Z言中,這種隱藏不是強(qiáng)制的,這樣我們就有了第一條(也是最重要的一條)經(jīng)驗(yàn)原則。經(jīng)驗(yàn)原則2.1 所有數(shù)據(jù)都應(yīng)該隱藏在它所在的類內(nèi)部。違反這條經(jīng)驗(yàn)原則意味著你不重視可維護(hù)性。面向?qū)ο蠓缎退鶐淼囊嫣?,大部分歸因于在設(shè)計(jì)階段和實(shí)現(xiàn)階段始終確保信息隱藏。如果你把數(shù)據(jù)設(shè)定為公有,那么就很難判斷系統(tǒng)哪部分的功能依賴于這個(gè)數(shù)據(jù)。事實(shí)上,這樣一來,數(shù)據(jù)變動(dòng)與函數(shù)的映射關(guān)系就和面向動(dòng)作范型一模一樣了。我們不得不檢查所有的函數(shù)以判斷哪些函數(shù)依賴于公有數(shù)據(jù)。有時(shí)開發(fā)者會(huì)爭辯說,“我需要把這個(gè)數(shù)據(jù)設(shè)為公有,因?yàn)椤痹谶@種情況下,開發(fā)者應(yīng)該問自己,“我到底要用這個(gè)數(shù)據(jù)來做什么?為什么不是類為我提供這個(gè)操作?”在所有這類情況下,問題出在類缺少了一個(gè)必需的操作。比如,考慮圖2.2 中的File類。開發(fā)者出人意料地認(rèn)為,byteoffset數(shù)據(jù)成員應(yīng)該是公有的,這樣才能允許隨機(jī)I/0訪問。但是,我們實(shí)際上需要的是執(zhí)行隨機(jī)訪問任務(wù)的操作。(如果你不是C程序員,那么我在這里補(bǔ)充說明一下:fseek和ftell和標(biāo)準(zhǔn)C庫函數(shù),用于執(zhí)行文件的隨機(jī)I/0訪問。)冒昧地認(rèn)為“我們可以把這個(gè)數(shù)據(jù)設(shè)為公有,因?yàn)樗肋h(yuǎn)也不會(huì)改變”的程序員請(qǐng)注意,Murphy關(guān)于編程的一條定理表明,這是第一個(gè)需要改變的數(shù)據(jù)。

編輯推薦

《OOD啟思錄》被讀者評(píng)價(jià)為“面向?qū)ο笤O(shè)計(jì)領(lǐng)域中的EffecliveC++”!《OOD啟思錄》能幫助你邁入OoD殿堂:如果你是新手,《OOD啟思錄》將帶你走上面向?qū)ο缶幊痰目燔嚨?。如果你是老手,《OOD啟思錄》深具洞察力的分析將進(jìn)一步提升你的面向?qū)ο箝_發(fā)水準(zhǔn),使你成為更好的軟件開發(fā)者。提供改進(jìn)面向?qū)ο笤O(shè)計(jì)的真知灼見!總結(jié)61條富有啟發(fā)意義的專家經(jīng)驗(yàn)!

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    OOD啟思錄 PDF格式下載


用戶評(píng)論 (總計(jì)9條)

 
 

  •   推薦給希望在軟件設(shè)計(jì)技術(shù)上有興趣,希望有所收獲的人看。
  •   很好很實(shí)用,論述很有深度,不過讀者得有項(xiàng)目經(jīng)驗(yàn)才能看得懂
  •   書質(zhì)量可以,本書也是經(jīng)典書籍。
  •   給老公買的,不錯(cuò)~
  •   很實(shí)用,講解也很細(xì)。
  •   這方面書實(shí)在太多了,都講的差不多,沒什么新鮮感。
  •   OOD啟思錄 是一本講解面向?qū)ο蟮乃季S書籍,思想有多遠(yuǎn)我們就能走多遠(yuǎn)。
  •   很實(shí)用,對(duì)學(xué)習(xí)C++橫有幫助,送貨也很快。
  •   在這里看到這本書,看到書頁數(shù)不多但價(jià)錢挺貴,老外寫得,以為會(huì)物有所值,但昨天拿到書,我心痛啊,我的money??!內(nèi)容膚淺,浮皮潦草,不夠詳細(xì),像國產(chǎn)教材似地?zé)o味,怎么還這么貴!
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7