| 書[0名0]: | 麵嚮對象的思考過程(原書[0第0]4版)|5007999 |
| 圖書定價: | 69元 |
| 圖書作者: | (美)馬特·魏斯費爾德(Matt Weisfeld) |
| 齣版社: | 機械工業齣版社 |
| 齣版日期: | 2016/11/1 0:00:00 |
| ISBN號: | 9787111553083 |
| 開本: | 16開 |
| 頁數: | 0 |
| 版次: | 1-1 |
| 作者簡介 |
| Matt Weisfeld居住於美[0國0]俄亥俄州的剋利夫蘭市。他既是[0大0][0學0]教授、軟件開發工程師,也是作傢。他在信息技術[0領0]域擁有20年的經驗,之後進入[0大0][0學0]任教。他先後[0當0]過軟件開發工程師、企業傢以及兼職教授。Matt擁有計算機科[0學0]碩士[0學0]位以及工[0商0]管理碩士[0學0]位。Matt除瞭本書之外,Matt還撰寫瞭其他兩本關於軟件開發的書籍,並在雜誌和期刊上發錶瞭多篇文章。這些雜誌和期刊包括《developer.com》《Dr.Dobb’s》《C/C++ Users》《Software Development》《Java Report》和[0國0]際期刊《Project Management》等。 |
| 內容簡介 |
| 本書是一部[0獨0]具特色的麵嚮對象技術著作。書中結閤代碼示例生動透徹地講述瞭麵嚮對象思想的精髓,讓讀者真正[0學0][0會0]以對象方式進行思考。本書共15章,在結構上可以分為兩部分:[0第0]壹部分包括[0第0]1~10章,探討麵嚮對象的基本概念,比如封裝、多態、繼承等;[0第0]二部分包括[0第0]11~15章,專注於將這些概念應用於一些通用的麵嚮對象技術中,並結閤瞭一些實用的應用程序。 |
| 目錄 |
譯者序 作者簡介 前言 [0第0]1章 麵嚮對象的概念簡介 1 1.1 基本概念 1 1.2 對象及遺留係統 2 1.3 過程式編程與麵嚮對象編程 3 1.4 由麵嚮過程開發過渡到麵嚮對象開發 5 1.4.1 過程式編程 5 1.4.2 麵嚮對象編程 6 1.5 究竟什麼是對象 6 1.5.1 對象數據 6 1.5.2 對象行為 7 1.6 究竟什麼是類 10 1.6.1 創建對象 10 1.6.2 屬性 11 1.6.3 方[0法0] 11 1.6.4 消息 12 1.7 使用類圖作為可視化工具 12 1.8 封裝和數據隱藏 12 1.8.1 接口 13 1.8.2 實現 13 1.8.3 接口/實現範式的一個真實示例 14 1.8.4 接口/實現範式的模型 14 1.9 繼承 15 1.9.1 [0超0]類和子類 16 1.9.2 抽象 16 1.9.3 is-a關係 17 1.10 多態 18 1.11 組閤 21 1.11.1 抽象 21 1.11.2 has-a關係 21 1.12 結語 21 1.13 本章中使用的示例代碼 22 1.13.1 C#.NET版本的TestPerson類 22 1.13.2 C#.NET版本的TestShape類 23 [0第0]2章 如何以麵嚮對象的方式進行思考 25 2.1 清楚接口和實現之間的區彆 26 2.1.1 接口 27 2.1.2 實現 27 2.1.3 一個接口/實現示例 28 2.2 使用抽象思維設計接口 31 2.3 盡可能提供小化的用戶接口 32 2.3.1 確定用戶 33 2.3.2 對象行為 33 2.3.3 環境約束 34 2.3.4 識彆公共接口 34 2.3.5 識彆實現 34 2.4 結語 35 2.5 引用 35 [0第0]3章 高級的麵嚮對象概念 36 3.1 構造函數 36 3.1.1 什麼是構造函數調用 37 3.1.2 構造函數中包含什麼 37 3.1.3 默認構造函數 37 3.1.4 使用多個構造函數 38 3.1.5 設計構造函數 41 3.2 錯誤處理 41 3.2.1 忽略問題 42 3.2.2 檢查問題並中止應用程序 42 3.2.3 檢查問題並試圖恢復 42 3.2.4 拋齣異常 43 3.3 作用域的重要性 45 3.3.1 局部屬性 45 3.3.2 對象屬性 46 3.3.3 類屬性 48 3.4 操作符重載 49 3.5 多重繼承 49 3.6 對象操作 50 3.7 結語 51 3.8 引用 51 3.9 本章中使用的示例代碼 51 [0第0]4章 類的剖析 53 4.1 類[0名0] 53 4.2 注釋 55 4.3 屬性 55 4.4 構造函數 56 4.5 訪問器 58 4.6 公共接口方[0法0] 60 4.7 私有實現方[0法0] 60 4.8 結語 61 4.9 引用 61 4.10 本章中使用的示例代碼 61 [0第0]5章 類設計指導 63 5.1 對現實世界係統建模 63 5.2 識彆公共接口 64 5.2.1 小化公共接口 64 5.2.2 隱藏實現 65 5.3 設計健壯的構造函數(以及析構函數) 65 5.4 在類中設計錯誤處理 66 5.4.1 使用注釋給類加上文檔 66 5.4.2 構造可以閤作的對象 67 5.5 設計時請考慮重用 67 5.6 設計時請考慮擴展性 67 5.6.1 使用描述性的[0名0]稱 67 5.6.2 抽象不可移植的代碼 68 5.6.3 提供一種方式來復製和比較對象 68 5.6.4 保持盡可能小的作用域 69 5.6.5 類的職責與自身高度相關 70 5.7 設計時請考慮可維護性 71 5.7.1 在開發過程中使用迭代 71 5.7.2 測試接口 72 5.8 使用對象持久化 73 5.9 結語 75 5.10 引用 75 5.11 本章中使用的示例代碼 75 [0第0]6章 使用對象進行設計 77 6.1 設計指導 77 6.1.1 提供正確的分析 79 6.1.2 編寫工作陳述文檔 80 6.1.3 收集需求 80 6.1.4 開發用戶接口的原型 81 6.1.5 識彆類 81 6.1.6 確定每個類的職責 81 6.1.7 確定類之間如何協作 81 6.1.8 創建類模型來描述係統 81 6.1.9 建立用戶接口原型 82 6.2 對象包裝 82 6.2.1 結構化代碼 83 6.2.2 包裝結構化代碼 84 6.2.3 包裝不可移植的代碼 85 6.2.4 包裝已有類 86 6.3 結語 87 6.4 引用 87 [0第0]7章 精通繼承和組閤 88 7.1 重用對象 88 7.2 繼承 89 7.2.1 通用和特例 91 7.2.2 設計決策 92 7.3 組閤 93 7.4 為什麼封裝是麵嚮對象的本質 95 7.4.1 繼承如何減弱封裝 96 7.4.2 關於多態的一個具體例子 97 7.4.3 對象職責 98 7.4.4 抽象類、虛方[0法0]和協議 101 7.5 結語 102 7.6 引用 103 7.7 本章中使用的示例代碼 103 [0第0]8章 框架和重用:使用接口和抽象類進行設計 105 8.1 代碼:重用還是不重用 105 8.2 什麼是框架 106 8.3 什麼是契約 107 8.3.1 抽象類 108 8.3.2 接口 110 8.3.3 綜閤運用 112 8.3.4 編譯器佐證 114 8.3.5 創建契約 115 8.3.6 係統插接點 117 8.4 一個電子[0商0]務示例 117 8.4.1 一個電子[0商0]務問題 117 8.4.2 非重用方式 118 8.4.3 電子[0商0]務解決方案 119 8.4.4 UML對象模型 120 8.5 結語 124 8.6 引用 124 8.7 本章中使用的示例代碼 124 [0第0]9章 創建對象及麵嚮對象設計 128 9.1 組閤關係 129 9.2 分階段構建 129 9.3 組閤類型 131 9.3.1 聚閤 131 9.3.2 聯閤 132 9.3.3 同時使用聯閤和聚閤 133 9.4 避免依賴 133 9.5 基數 134 9.5.1 多個對象聯閤 136 9.5.2 可選的聯閤 137 9.6 一個綜閤性示例 137 9.7 結語 138 9.8 引用 138 [0第0]10章 創建對象模型 139 10.1 什麼是UML 139 10.2 類圖結構 140 10.3 屬性和方[0法0] 141 10.3.1 屬性 142 10.3.2 方[0法0] 142 10.4 訪問符號 142 10.5 繼承 143 10.6 接口 145 10.7 組閤 145 10.7.1 聚閤 145 10.7.2 聯閤 146 10.8 基數 147 10.9 結語 148 10.10 引用 149 [0第0]11章 對象與可移植數據:XML和JSON 150 11.1 可移植數據 150 11.2 XML 152 11.3 XML與HTML 152 11.4 XML和麵嚮對象的語言 153 11.5 在企業間共享數據 154 11.6 使用DTD驗證文檔 155 11.7 將DTD集成到XML文檔中 156 11.8 使用層疊樣式錶 161 11.9 對象標記 163 11.10 結語 167 11.11 引用 167 [0第0]12章 持久化對象:序列化、封送及關係型數據庫 168 12.1 持久化對象基礎 168 12.2 將對象保存到平麵文件中 169 12.2.1 序列化文件 170 12.2.2 再次討論實現和接口 172 12.2.3 為什麼不保存方[0法0] 173 12.3 序列化過程中使用XML 173 12.4 寫入關係型數據庫 176 12.5 結語 179 12.6 引用 179 12.7 本章中使用的示例代碼 179 [0第0]13章 Web服務、移動應用及混閤應用中的對象 183 13.1 分布式計算的演進 183 13.2 基於對象的腳本語言 184 13.3 驗證示例 186 13.4 網頁中的對象 189 13.4.1 對象 189 13.4.2 網頁控製器 191 13.4.3 聲音播放器 192 13.4.4 電影播放器 192 13.4.5 Flash動畫 193 13.5 分布式對象及企業 193 13.5.1 公共對象請求代理體係結構 195 13.5.2 Web服務的定義 197 13.5.3 Web服務代碼 201 13.5.4 錶徵狀態轉移 202 13.6 結語 203 13.7 引用 203 [0第0]14章 對象及客戶端/服務器端應用程序 204 14.1 客戶端/服務器端方式 204 14.2 私有方式 205 14.2.1 序列化對象代碼 205 14.2.2 客戶端代碼 206 14.2.3 服務器端代碼 208 14.2.4 運行該私有的客戶端/服務器端示例 209 14.3 非私有方式 210 14.3.1 對象定義代碼 211 14.3.2 客戶端代碼 212 14.3.3 服務器端代碼 213 14.3.4 運行非私有客戶端/服務器端示例 215 14.4 結語 215 14.5 引用 216 14.6 本章中使用的示例代碼 216 [0第0]15章 設計模式 217 15.1 為什麼使用設計模式 218 15.2 Sm[0all0]talk的模型/視圖/控製器 219 15.3 設計模式類型 220 15.3.1 創建型模式 220 15.3.2 結構型模式 224 15.3.3 行為型模式 227 15.4 反模式 228 15.5 結語 229 15.6 引用 229 15.7 本章中使用的示例代碼 229 |
這本書絕對是計算機科學領域的一股清流!我一直對編程抱有熱情,但總感覺自己的思維方式有些碎片化,遇到復雜問題時,常常是“頭痛醫頭,腳痛醫腳”,缺乏一個係統性的解決框架。當我看到《麵嚮對象的思考過程》(原書第4版)時,內心湧起一股強烈的期待。這本書並沒有直接教你“如何寫一段代碼”,而是深入探討瞭“如何思考”。它就像一把鑰匙,為我打開瞭通往對象導嚮世界的大門。通過生動的案例和循序漸進的講解,我逐漸理解瞭“對象”、“類”、“封裝”、“繼承”、“多態”這些概念背後的哲學思想。不再是枯燥的術語堆砌,而是通過一個個鮮活的例子,比如模擬現實世界中的各種事物,讓我體會到麵嚮對象是如何幫助我們更清晰、更高效地組織和管理復雜係統的。尤其令我印象深刻的是,作者強調的“關注點分離”原則,這不僅在軟件開發中有指導意義,甚至在日常生活中,也讓我學會瞭如何將大問題分解成小模塊,各個擊破,從而大大提高瞭解決問題的效率。這本書的價值遠不止於技術層麵,它對我的思維方式産生瞭深遠的影響,讓我學會用一種更結構化、更模塊化的方式來觀察和處理問題。
評分對於任何一個想要深入理解計算機科學核心思想的人來說,《麵嚮對象的思考過程》(原書第4版)都是一本不容錯過的寶藏。這本書給我帶來的最大改變,是從一個“代碼執行者”轉變為一個“係統設計者”。它沒有直接教授你如何去寫一個高效的算法,但它教會瞭我如何去設計一個能夠支撐復雜算法的良好結構。我之前常常陷入“實現細節”的泥潭,而這本書讓我學會瞭如何跳齣這些細節,從更高的層麵去思考問題的本質。它關於“接口隔離原則”和“依賴倒置原則”的講解,讓我明白瞭如何構建鬆耦閤、易於測試和維護的係統。這些原則聽起來可能有些“高冷”,但作者通過大量貼近實際的例子,將它們變得觸手可及。讀完這本書,我感覺自己的編程視野得到瞭極大的拓展,不再局限於單一語言或框架,而是能夠理解更普適的設計思想,這對於我未來在更廣闊的技術領域進行探索,打下瞭堅實的基礎。
評分老實說,最初接觸這本書的時候,我還是個對計算機世界一知半解的新手,很多概念都像天書一樣。網絡上的教程雖然多,但往往是零散的,缺乏連貫性和深度。《麵嚮對象的思考過程》(原書第4版)恰恰彌補瞭這一點。它不像一些入門書籍那樣,上來就拋齣一堆代碼,而是從更宏觀的視角,帶你領略麵嚮對象設計的魅力。我記得其中一個章節,通過對一個簡單場景的反復建模和演進,生動地展示瞭麵嚮對象如何從最初的混亂到最終的優雅。作者非常善於引導讀者思考,提齣問題,然後一步步地給齣答案,讓我有種“頓悟”的感覺。特彆是關於“接口”和“抽象”的講解,更是讓我醍醐灌頂。我過去寫代碼時,常常會陷入“復製代碼”、“拼湊功能”的陷阱,而這本書讓我明白,好的設計是能夠適應變化,並且易於擴展的。它教會瞭我如何站在更高的維度去看待代碼,如何去設計那些能夠長久運行、並且能夠被他人輕易理解和維護的係統。讀完這本書,我感覺自己不再是那個隻會寫“指令”的機器,而是真正理解瞭“創造”的樂趣和力量。
評分《麵嚮對象的思考過程》(原書第4版)這本書,給我的感覺就像是給我裝備瞭一副“光學放大鏡”,讓我能夠更清晰地洞察代碼背後的邏輯和結構。我之前嘗試過一些其他的麵嚮對象書籍,但總覺得它們要麼太理論化,要麼就陷在具體的語法細節裏,無法觸及麵嚮對象設計的精髓。《麵嚮對象的思考過程》則不同,它以一種非常“接地氣”的方式,將那些抽象的概念變得生動形象。它通過不斷地類比和反思,引導讀者去理解“是什麼”,以及“為什麼”。我印象特彆深刻的是,作者在講解“繼承”和“多態”時,不僅僅是列舉代碼例子,而是深入分析瞭它們在不同場景下的適用性和優缺點,讓我真正理解瞭為什麼我們需要這些設計原則。讀這本書,我感覺自己像是在參加一場高水平的設計研討會,每一次翻頁,都能學到新的東西,每一次思考,都能讓我的理解更上一層樓。它讓我不再害怕麵對復雜的係統,而是能更有信心地去分析和改造它們。
評分這本書簡直是為那些想要在計算機領域有所建樹,但又被“理論”和“實踐”割裂所睏擾的讀者量身定做的。在我看來,很多技術書籍都側重於“怎麼做”,而《麵嚮對象的思考過程》(原書第4版)則更側重於“為什麼這麼做”。它並沒有迴避麵嚮對象設計中的一些挑戰和難點,而是用非常坦誠的態度,將它們一一剖析。我特彆喜歡書中關於“模塊化”和“可重用性”的探討,這讓我想起瞭我在工作中遇到的各種“遺留係統”。很多時候,我們不得不花費大量時間和精力去理解和修改那些難以維護的代碼,而這本書讓我明白瞭,如果當初采用瞭良好的麵嚮對象設計,很多問題都可以避免。書中舉例的那些“反模式”,更是讓我受益匪淺,讓我知道應該警惕哪些容易犯的錯誤。總的來說,它提供瞭一種“高級”的學習路徑,不僅僅是知識的積纍,更是思維模式的重塑。它讓我明白,學習編程不僅僅是學習一門語言,更是學習一種解決問題的哲學。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有