面向?qū)ο笤O(shè)計(jì)原理與模式

出版時(shí)間:2009-4  出版社:斯科瑞、騰靈靈、 仲婷 清華大學(xué)出版社 (2009-04出版)  作者:斯科瑞  頁數(shù):310  
Tag標(biāo)簽:無  

內(nèi)容概要

  《面向?qū)ο笤O(shè)計(jì)原理與模式》全面介紹了Java面向?qū)ο蟪绦蛟O(shè)計(jì)的原理和模式,幫助解決Java程序中的設(shè)計(jì)問題。此外,該書十分注重Java面向?qū)ο蟪绦蛟O(shè)計(jì)的每個(gè)細(xì)節(jié),以及繼承、方法、類、設(shè)計(jì)模式等在程序設(shè)計(jì)中起到的關(guān)鍵作用,濃縮了Java的精華。在進(jìn)行理論介紹的同時(shí),《面向?qū)ο笤O(shè)計(jì)原理與模式》十分重視實(shí)踐技能的培養(yǎng),一些較為綜合的實(shí)例貫穿了相關(guān)的知識(shí)點(diǎn),使學(xué)生理解并掌握它們?cè)诔绦蛟O(shè)計(jì)中的真正用處和在提升程序性能方面的作用?!睹嫦?qū)ο笤O(shè)計(jì)原理與模式》不但可作為高校計(jì)算機(jī)科學(xué)專業(yè)的教材,還可作為Java程序設(shè)計(jì)人員的必備參考書。

作者簡介

作者:(美國)斯科瑞 譯者:騰靈靈 仲婷Dale Skrien,美國Colby大學(xué)計(jì)算機(jī)科學(xué)系的教授,研究方向?yàn)樗惴▓D形理論,面向?qū)ο笤O(shè)計(jì),以及計(jì)算機(jī)音樂。

書籍目錄

第1章 面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn)的優(yōu)雅性1.1 存在的問題1.2 軟件工程1.3 設(shè)計(jì)優(yōu)雅軟件的標(biāo)準(zhǔn)1.4 說明1.5 練習(xí)題1.6 參考文獻(xiàn)第2章 面向?qū)ο蟮幕A(chǔ)知識(shí)2.1 面向?qū)ο缶幊膛c非面向?qū)ο缶幊?.1.1 面向?qū)ο缶幊膛c非面向?qū)ο缶幊毯喗?.1.2 面向?qū)ο笳Z言2.1.3 面向?qū)ο缶幊痰膬?yōu)點(diǎn)2.2 Java中的類、對(duì)象、變量和方法2.3 插入語:Java中的類方法和類變量2.3.1 類變量及類方法簡介2.3.2 Java中的類變量及其使用2.3.3 Java中的類方法及其使用2.3.4 小結(jié)2.4 UML類圖簡介2.5 實(shí)現(xiàn)繼承2.5.1 特殊化2.5.2 Java中的Obiect父類2.5.3 特殊化的另一種使用2.5.4 泛化2.5.5 Java中的單繼承2.6 類型、子類型和接口繼承2.6.1 類型2.6.2 多態(tài)2.6.3 多態(tài)的價(jià)值 2.7 接口與抽象類 2.8 動(dòng)態(tài)方法調(diào)用 2.9 重載與重寫 2.10 控制對(duì)方法和數(shù)據(jù)的訪問 2.11 小結(jié) 2.12 練習(xí)題 2.13 參考文獻(xiàn)第3章 優(yōu)雅性與實(shí)現(xiàn)繼承3.1 關(guān)于繼承的四個(gè)觀點(diǎn)3.1.1 代碼重用觀點(diǎn)3.1.2 Is-A觀點(diǎn)3.1.3 公共接口觀點(diǎn)3.1.4 多態(tài)觀點(diǎn)3.2 代碼重用的充分性3.3 代碼重用聯(lián)合Is-A關(guān)系的充分性3.4 代碼重用、Is-A關(guān)系以及公共接口的充分性3.5 Has-A關(guān)系和UML關(guān)聯(lián)關(guān)系3.6 代碼重用、Is-A關(guān)系、公共接口以及多態(tài)的充分性3.7 使用實(shí)現(xiàn)繼承的代價(jià)3.8 示例:人、女人和男人3.9 示例:繪制多邊形3.10 示例:排序3.11 Java中數(shù)組的子類化3.12 回顧:繼承與引用3.13 小結(jié)3.14 練習(xí)題3.15 參考文獻(xiàn)第4章 優(yōu)雅性與方法4.1 編碼風(fēng)格和命名約定4.2 方法與分解4.3 內(nèi)聚方法4.4 結(jié)構(gòu)良好的對(duì)象和類不變式4.5 內(nèi)部文檔4.6 外部文檔4.7 案例分析:重寫Java中的equals方法4.8 案例分析:重寫Java中的clone方法4.9 重構(gòu)4.10 代碼優(yōu)化 ……第5章 優(yōu)雅性和類第6章 Money類的簡單案例研究第7章 設(shè)計(jì)模式介紹第8章 繪圖應(yīng)用程序案例研究第9章 語言解析器案例研究附錄A UML介紹附錄B 編碼約定和Javadoc注釋

章節(jié)摘錄

第1章 面向?qū)ο笤O(shè)計(jì)與實(shí)現(xiàn)的優(yōu)雅性對(duì)于閱讀本書的大學(xué)生而言,您很可能已經(jīng)學(xué)習(xí)了一些計(jì)算機(jī)科學(xué)的相關(guān)課程,其中有一門對(duì)于編程的介紹性課程。經(jīng)過認(rèn)真的學(xué)習(xí),您一定掌握了至少一門編程語言的基本編程概念。您學(xué)會(huì)了諸如循環(huán)、賦值和條件語句等語言結(jié)構(gòu),也學(xué)會(huì)了編寫這些語言結(jié)構(gòu)的一種或多種方法。您更有可能已經(jīng)理解了計(jì)算機(jī)科學(xué)并不僅僅是編程而已,事實(shí)上,編程僅僅是計(jì)算機(jī)科學(xué)工作者的一種工具。遺憾的是,因?yàn)闆]有時(shí)間講解計(jì)算機(jī)科學(xué)中如此眾多的主題,所以您將無法獲悉解決同一問題的各種不同方法的優(yōu)缺點(diǎn)。舉例來說,在較低的層次上,存在很多種方法來實(shí)現(xiàn)一個(gè)結(jié)構(gòu),例如循環(huán)(比如,可以使用for循環(huán),while循環(huán)或者遞歸),其中的某些方法相對(duì)而言會(huì)更加優(yōu)越。在高一點(diǎn)的層次上,存在多種方法來實(shí)現(xiàn)一個(gè)任務(wù)(如歸并排序或者選擇排序),其中某些相比而言更為快速。再高一點(diǎn)的層次上,存在各種方法來將一個(gè)程序劃分為諸如類或者方法的模塊,其中某些分割的方法會(huì)更加合適。我們來看一個(gè)最后那種情況的例子。請(qǐng)考慮這樣一個(gè)問題,該問題需要編寫一個(gè)模塊來存儲(chǔ)集合,該集合包括一些人以及他們各自的狗的信息。這個(gè)集合需要被保存為散列表、數(shù)組還是其他的集合形式?這個(gè)集合是需要存儲(chǔ)Person對(duì)象還是Person-Dog這樣的對(duì)象組合。Dog對(duì)象是否需要有實(shí)例變量指向其主人?而狗的主人又是否需要實(shí)例變量指向他所擁有的狗的集合?如果是的話,這又將是一個(gè)怎樣的集合?這樣的Person對(duì)象還需要存儲(chǔ)哪些其他數(shù)據(jù)?如果這些人是美國公民,是否需要存儲(chǔ)他們的社會(huì)保障號(hào)碼?是否需要將這樣的人的集合排序以便于查找?如果一個(gè)人的某條狗死了,是否需要將其從這個(gè)集合中刪除,或是將其保留為一個(gè)沒有狗的人?很自然地,您會(huì)疑惑這些問題的答案是否真的很重要。如果兩個(gè)設(shè)計(jì),一個(gè)只有少數(shù)幾個(gè)類和方法,另一個(gè)則包含很多類和方法,當(dāng)這兩個(gè)設(shè)計(jì)都能解決問題的時(shí)候,具體使用哪個(gè)設(shè)計(jì)是否真的很重要?類似地,如果所有版本的循環(huán)都能正確地完成計(jì)算,具體使用哪個(gè)版本是否真的很重要?如果兩個(gè)算法都能正確計(jì)算,哪個(gè)運(yùn)行更快是否真的很重要,尤其是在考慮到每年硬件處理速度飛速增長的情況下?

編輯推薦

  本書特色:根據(jù)代碼“優(yōu)雅性”討論設(shè)計(jì)和實(shí)現(xiàn),使用小型和中型案例分析來介紹設(shè)計(jì)原理和模式,大部分設(shè)計(jì)模式均在解決某個(gè)問題的背景中引入,在每章的末尾都有大量的各種難度的練習(xí)題,便于學(xué)生溫故而知新。

圖書封面

圖書標(biāo)簽Tags

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


    面向?qū)ο笤O(shè)計(jì)原理與模式 PDF格式下載


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

 
 

  •   通俗易懂,內(nèi)容充實(shí)。。。
  •   很好的詮釋了面向?qū)ο蟮脑恚笇?dǎo)你設(shè)計(jì)
 

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

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