欧美一级特黄aaaaaaa在线观看-欧美一级特黄aaaaaa在线看片-欧美一级特黄aa大片-欧美一级特黄刺激大片视频-深夜久久-深夜激情网站

熱門關(guān)鍵字:  聽力密碼  聽力密碼  新概念美語  單詞密碼  巧用聽寫練聽力
圖書信息

面向?qū)ο蟮乃伎歼^程(原書第二版)

中國水利水電出版社
    【作 者】[美] Matt Weisfeld 著 【I S B N 】978-7-5084-2291-0 【責(zé)任編輯】吳萍 【適用讀者群】研究生 【出版時(shí)間】2004-08-01 【開 本】16開 【裝幀信息】平裝(光膜) 【版 次】第1版第1次印刷 【頁 數(shù)】 【千字?jǐn)?shù)】296 【印 張】13.25 【定 價(jià)】26 【叢 書】暫無分類 【備注信息】
圖書詳情

    面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)是現(xiàn)代程序設(shè)計(jì)語言的基本概念,本書深入探討了如何以面向?qū)ο蟮姆绞絹磉M(jìn)行思考。全書共分為15章,內(nèi)容包括:面向?qū)ο蟮幕靖拍睿绾我詫ο蟮姆绞竭M(jìn)行思考,高級的面向?qū)ο蟾拍睿惖钠饰觯愒O(shè)計(jì),繼承和組合,框架和重用,創(chuàng)建對象,使用UML創(chuàng)建對象模型,持久對象,可移植的數(shù)據(jù),分布式對象和企業(yè),設(shè)計(jì)模式等。

    本書是當(dāng)代程序員的基礎(chǔ)理論讀物,適合于大學(xué)本科計(jì)算機(jī)專業(yè)的學(xué)生以及想要學(xué)習(xí)面向?qū)ο蠹夹g(shù)的程序員。

    Authorized translation from the English language edition, entitled OBJECT-ORIENTED THOUGHT PROCESS, THE, 2nd Edition, 0672326116 by WEISFELD, MATT, published by Pearson Education, Inc, publishing as Que/Sams, Copyright © 2004 by Sams Publishing.

    All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.CHINESE SIMPLIFIED language edition published by CHINA WATERPOWER PRESS/BEIJING MULTI-CHANNEL ELECTRONIC INFORMATION CO.LTD, Copyright © 2004 by CHINA WATERPOWER PRESS/BEIJING MULTI-CHANNEL ELECTRONIC INFORMATION CO.LTD.

    顧名思義,本書是關(guān)于面向?qū)ο螅∣O)的思考過程的。很明顯,選擇本書的主題和書名都是重要的決定,然而,這些決定并不簡單。許多圖書講述面向?qū)ο蟮囊环N或者另一種層次。若干暢銷圖書講述以下主題:OO分析、OO設(shè)計(jì)、OO程序設(shè)計(jì)、設(shè)計(jì)模式、OO數(shù)據(jù)庫、統(tǒng)一建模語言(UML)、各種OO程序設(shè)計(jì)語言以及許多與OO程序設(shè)計(jì)有關(guān)的其他主題。

    然而,在研究以上所有圖書時(shí),許多人忘記各個主題都是建立在下面這個單一基礎(chǔ)之上:如何以O(shè)O的方式進(jìn)行思考。遺憾的是,許多軟件開發(fā)專家常常還沒有花適當(dāng)?shù)臅r(shí)間和精力來真正了解這些圖書中的概念,就開始鉆研它們。

    我認(rèn)為學(xué)習(xí)OO概念不是通過學(xué)習(xí)某種具體的開發(fā)方法或者某組工具就可以實(shí)現(xiàn)的。簡而言之,以O(shè)O的方式完成工作是一種思考方法。本書完全和OO思考過程有關(guān)。

    從OO思考過程中分離出方法和工具并不容易。許多人都是通過其中一種方法或者工具來了解OO概念的。許多C程序員是在直接轉(zhuǎn)移到C++時(shí)首次了解到面向?qū)ο螅诖酥吧踔翛]有間接接觸這個方法。一些軟件專業(yè)人員是通過演示文稿(包含使用UML的對象模型)而首次接觸面向?qū)ο蟮模诖酥八麄円矝]有直接接觸過OO概念。

    理解學(xué)習(xí)OO概念和使用支持該范例的方法和工具之間的顯著區(qū)別是很重要的。在“What the UML Is—and Isn’t”一文中,作者Craig Larman說:“遺憾的是,軟件工程和UML圖表語言領(lǐng)域中,獲得閱讀和編寫UML符號的技能在某些時(shí)候似乎和獲得面向?qū)ο蠓治龊驮O(shè)計(jì)的技能同等重要。當(dāng)然,事實(shí)并非如此,后者比前者更重要。因此,我建議尋找以下培訓(xùn)和培訓(xùn)材料:其中面向?qū)ο蟮姆治龊驮O(shè)計(jì)要比UML符號或者某種電腦輔助軟件工程工具的用途更為重要。”

    盡管學(xué)習(xí)一門建模語言是一個很重要的步驟,但是先學(xué)習(xí)OO技能更重要。在學(xué)習(xí)OO概念之前先學(xué)習(xí)UML,類似于在不了解任何電子技術(shù)時(shí)學(xué)習(xí)如何閱讀電氣圖。

    程序設(shè)計(jì)語言存在相同的問題。前面說過,許多C程序員還沒有直接接觸到OO概念,就通過轉(zhuǎn)移到C++而進(jìn)入面向?qū)ο箢I(lǐng)域。很多情況下,聲稱自己是C++程序員的開發(fā)人員只是使用C++編輯器的C程序員。

    隨著Java、C#.NET、Visual Basic .NET之類的面向?qū)ο笳Z言越來越流行,這個問題越來越重要。有很多Visual Basic程序員必須轉(zhuǎn)移到Visual Basic .NET中。類似地,許多可能沒有遵守嚴(yán)格的OO慣例的C++程序員,需要轉(zhuǎn)移到Java或者C#中,在使用這些語言時(shí),他們就別無選擇,只能以O(shè)O方式進(jìn)行思考。

    早期的Visual Basic版本不是OO的。C不是OO的,而開發(fā)C++時(shí)考慮了與C的向后兼容性。因此,僅僅使用C++編輯器編寫C的句子構(gòu)造,而拋棄了C++所有的OO特性,這是非常可能的。更壞的情況下,程序員可以使用足夠的OO特性,剛好使某個程序不能使用OO進(jìn)行理解,而非OO程序員也可以這樣。

    因此,在開始OO開發(fā)的時(shí)候,首先學(xué)習(xí)基本的OO概念是至關(guān)重要的。我們應(yīng)該抵擋住直接跨入某種程序設(shè)計(jì)語言(如C++、C#或者Java)或者某種建模語言(如UML)的誘惑,而花時(shí)間來學(xué)習(xí)面向?qū)ο蟮乃伎歼^程。

    本書是向程序員介紹面向?qū)ο蠹夹g(shù)的概念性圖書。它的讀者對象當(dāng)然包括想要跨越到面向?qū)ο蠹夹g(shù)的結(jié)構(gòu)化程序設(shè)計(jì)人員。因此,書中包括的一些資料實(shí)際上是結(jié)構(gòu)化的技術(shù)和面向?qū)ο蠹夹g(shù)之間的橋梁。第6章就是該方法的一個好例子,該章添加了結(jié)構(gòu)化程序設(shè)計(jì)人員所熟悉的技術(shù)。重要的是理解面向?qū)ο蠛徒Y(jié)構(gòu)化實(shí)踐并非是相互排斥的。結(jié)構(gòu)化技術(shù)的使用在OO設(shè)計(jì)中隨處可見(僅僅考慮for循環(huán)或者if語句)。

    20世紀(jì)80年代后期,在我的第一堂Smalltalk課上,教師告訴全班同學(xué),新的OO范例是一種全新的思考方式。他接著說到:“雖然我們差不多都是非常優(yōu)秀的程序員,但是其中的10%~20%永遠(yuǎn)都不能真正以O(shè)O的方式完成工作。”如果這個陳述確實(shí)是正確的,也主要是因?yàn)橐恍┤藦膩頉]有真正地花時(shí)間進(jìn)行范例轉(zhuǎn)換并學(xué)習(xí)基礎(chǔ)的OO概念。

    第二版的新內(nèi)容

    正如我常說的,我認(rèn)為第一版主要是一本概念性的圖書。盡管第二版仍然堅(jiān)持這個目標(biāo),但我還添加了若干應(yīng)用主題,它們非常適合于面向?qū)ο蟮母拍睢_@些應(yīng)用包括以下幾點(diǎn):

     對象建模

     對象持久性

     XML

     對象和Internet

     企業(yè)

     設(shè)計(jì)模式

    從本質(zhì)上說,講述這些主題的章節(jié)仍然是概念性的。然而,其中一些章節(jié)包括Java代碼,它們展示了如何實(shí)現(xiàn)這些概念。

    讀者對象

    本書是對基本的OO概念的總體介紹。適合的讀者包括設(shè)計(jì)人員、開發(fā)人員、項(xiàng)目管理人員以及任何想要總體了解面向?qū)ο蟮娜恕i喿x這本書將為閱讀其他講述更高級的OO主題的圖書打下堅(jiān)實(shí)的基礎(chǔ)。

    在這些主題更高級的書中,我最喜歡的圖書之一仍然是Stephen Gilbert和Bill McCarty所著的《Object-Oriented Design in Java》。我確實(shí)非常喜歡該書中的方法,并且在我教過的OO概念課堂上,將它用作教科書。在本書中我經(jīng)常引用到《Object-Oriented Design in Java》,并且推薦您學(xué)完本書之后學(xué)習(xí)這本書。

    其他我認(rèn)為非常有用的圖書包括Scott Meyers所著的《Effective C++》、Stephen R. Schach所著的《Classical and Object-Oriented Software Engineering》、Bruce Eckel所著的《Thinking in C++》、Martin Fowler所著的《UML Distilled》以及Peter Coad和Mark Mayfield所著的《Java Design》。

    在公司和學(xué)校向程序員講授介紹性的Java時(shí),我很快就發(fā)現(xiàn)其中很多程序員很容易掌握J(rèn)ava語法。然而,他們很難了解該語言的OO本質(zhì)。

    本書的范圍

    到目前為止很明顯,我堅(jiān)信在跨入某個程序設(shè)計(jì)語言或者建模語言之前先熟悉面向?qū)ο蟮乃伎歼^程是很有益的。本書處處都是Java代碼例子以及UML圖,然而,您不必了解Java或者UML來閱讀它們。既然我說過先學(xué)習(xí)概念,為什么這里有這么多Java代碼和UML圖呢?首先,用它們來闡述OO概念都很棒。其次,它們對OO過程都很重要,并且我們應(yīng)該對其進(jìn)行介紹性的講解。重點(diǎn)并沒有放在Java或者UML上,而是使用它們作為輔助工具,以了解基本概念。

    本書中的Java例子說明循環(huán)和函數(shù)之類的概念。然而,理解這些代碼本身并不是理解這些概念的先決條件,手頭擁有講述Java語法的書可能會有所幫助。

    強(qiáng)調(diào)一下,本書不講述Java或者UML,講述它們都需要幾卷的篇幅。我希望本書能激起您學(xué)習(xí)其他OO主題(如OO分析、面向?qū)ο蟮脑O(shè)計(jì)以及OO程序設(shè)計(jì))的愿望。

    本書約定

    本書使用以下排版約定:

    代碼行、命令、語句以及其他與代碼相關(guān)的術(shù)語是以等寬字體(monospace)出現(xiàn)的。

    代表實(shí)際應(yīng)該鍵入的內(nèi)容的占位符是以斜體等寬字體(italic monospace)出現(xiàn)的。應(yīng)該鍵入的文本是以粗體等寬字體(bold monospace)出現(xiàn)的。

    貫穿本書,有一些特殊的說明性內(nèi)容,例如:

    注意

    注意顯示關(guān)于該討論的有趣信息,它是一點(diǎn)見解或者對新技術(shù)的啟示。

    提示

    提示向您提供建議或者展示完成任務(wù)的更容易的方式。

    警告

    警告提醒您某個可能的問題并向您提供如何避免該問題的建議。

    本書中使用的源代碼

    您可以從http://www.samspublishing.com下載本書中討論到的所有源代碼和例子。在“search”窗口,簡單地鍵入本書的ISBN(0672326116),按下Enter健,然后就出現(xiàn)帶有指向源代碼鏈接的頁面。

    譯者序
    前言
    致謝
    第1章 面向?qū)ο蟮母拍詈喗?1
    1.1 面向過程程序設(shè)計(jì)和OO程序設(shè)計(jì) 1
    1.2 從面向過程開發(fā)轉(zhuǎn)向面向?qū)ο箝_發(fā) 4
    1.2.1 面向過程的程序設(shè)計(jì) 4
    1.2.2 OO程序設(shè)計(jì) 4
    1.3 對象的確切定義 5
    1.3.1 對象數(shù)據(jù) 5
    1.3.2 對象行為 5
    1.4 類的確切定義 8
    1.4.1 類是對象模板 8
    1.4.2 屬性 9
    1.4.3 方法 9
    1.4.4 消息 10
    1.5 使用UML構(gòu)建類圖 10
    1.6 封裝 10
    1.6.1 接口 11
    1.6.2 實(shí)現(xiàn) 11
    1.6.3 接口/實(shí)現(xiàn)范例的現(xiàn)實(shí)例子 11
    1.6.4 接口/實(shí)現(xiàn)范例的Java例子 12
    1.7 繼承 13
    1.7.1 超類和子類 14
    1.7.2 抽象 14
    1.7.3 Is-a關(guān)系 15
    1.8 多態(tài) 16
    1.9 組合 18
    1.10 小結(jié) 18
    第2章 如何以對象的方式進(jìn)行思考 20
    2.1 了解接口和實(shí)現(xiàn)的區(qū)別 20
    2.1.1 接口 22
    2.1.2 實(shí)現(xiàn) 22
    2.1.3 接口/實(shí)現(xiàn)的例子 22
    2.2 在設(shè)計(jì)接口時(shí)使用抽象的思想 26
    2.3 盡可能向用戶提供最少的接口 27
    2.3.1 確定用戶 28
    2.3.2 對象行為 28
    2.3.3 環(huán)境限制 28
    2.3.4 確定公共接口 29
    2.3.5 確定實(shí)現(xiàn) 29
    2.4 小結(jié) 30
    2.5 參考文獻(xiàn) 30
    第3章 高級的面向?qū)ο蟾拍?31
    3.1 構(gòu)造函數(shù) 31
    3.1.1 何時(shí)調(diào)用構(gòu)造函數(shù) 31
    3.1.2 構(gòu)造函數(shù)的內(nèi)部機(jī)理 31
    3.1.3 默認(rèn)構(gòu)造函數(shù) 32
    3.1.4 使用多個構(gòu)造函數(shù) 32
    3.1.5 設(shè)計(jì)構(gòu)造函數(shù) 36
    3.2 錯誤處理 36
    3.2.1 忽略問題 36
    3.2.2 檢測問題并異常終止應(yīng)用程序 36
    3.2.3 檢測問題并且嘗試解決問題 37
    3.2.4 拋出異常 37
    3.3 作用域的概念 39
    3.3.1 局部屬性 39
    3.3.2 對象屬性 40
    3.3.3 類的屬性 42
    3.4 運(yùn)算符重載 43
    3.5 多重繼承 43
    3.6 對象操作 44
    3.7 小結(jié) 45
    3.8 參考文獻(xiàn) 45
    第4章 類的剖析 46
    4.1 類的名稱 46
    4.2 注釋 47
    4.3 屬性 48
    4.4 構(gòu)造函數(shù) 49
    4.5 訪問函數(shù) 50
    4.6 公共接口方法 52
    4.7 私有實(shí)現(xiàn)方法 53
    4.8 小結(jié) 53
    4.9 參考文獻(xiàn) 53
    第5章 類設(shè)計(jì)指導(dǎo) 54
    5.1 標(biāo)識公共接口 54
    5.2 設(shè)計(jì)健壯的構(gòu)造函數(shù)(或析構(gòu)函數(shù)) 56
    5.3 在類中設(shè)計(jì)錯誤處理 57
    5.3.1 用文檔說明類以及使用注釋 57
    5.3.2 帶著協(xié)作的意向創(chuàng)建對象 57
    5.4 在設(shè)計(jì)時(shí)考慮到重用 58
    5.5 設(shè)計(jì)時(shí)考慮擴(kuò)展 58
    5.5.1 使名稱形象化 59
    5.5.2 提取不能移植的代碼 59
    5.5.3 提供復(fù)制和比較對象的方法 59
    5.5.4 盡可能使作用域最小 60
    5.5.5 類應(yīng)該對自己負(fù)責(zé) 60
    5.6 在設(shè)計(jì)時(shí)考慮可維護(hù)性 61
    5.6.1 使用迭代 62
    5.6.2 測試接口 62
    5.7 使用對象持久性 64
    5.8 小結(jié) 65
    5.9 參考文獻(xiàn) 65
    第6章 使用對象進(jìn)行設(shè)計(jì) 66
    6.1 設(shè)計(jì)指導(dǎo) 66
    6.1.1 進(jìn)行正確的分析 69
    6.1.2 制作工作陳述 69
    6.1.3 收集需求 69
    6.1.4 開發(fā)用戶接口原型 70
    6.1.5 確定類 70
    6.1.6 確定每一個類的職責(zé) 70
    6.1.7 確定類和類之間如何相互作用 70
    6.1.8 創(chuàng)建類模型來描述系統(tǒng) 70
    6.2 案例分析:Blackjack(撲克牌中的二十一點(diǎn))例子 71
    6.2.1 使用CRC卡片 72
    6.2.2 確定Blackjack的類 73
    6.2.3 確定類的職責(zé) 76
    6.2.4 UML用例:確定協(xié)作 80
    6.2.5 制作CRC卡片的第一步 83
    6.2.6 UML類圖:對象模型 85
    6.2.7 為用戶接口設(shè)計(jì)原型 86
    6.3 小結(jié) 86
    6.4 參考文獻(xiàn) 86
    第7章 掌握繼承和組合 87
    7.1 繼承 88
    7.1.1 泛化和特化 90
    7.1.2 設(shè)計(jì)決策 90
    7.2 組合 92
    7.3 為什么封裝對OO很重要 94
    7.3.1 繼承是如何削弱封裝的 95
    7.3.2 一個詳細(xì)的多態(tài)例子 96
    7.3.3 對象的職責(zé) 97
    7.4 小結(jié) 100
    7.5 參考文獻(xiàn) 100
    第8章 框架和重用:利用接口和抽象類進(jìn)行設(shè)計(jì) 101
    8.1 代碼的重用 101
    8.2 什么是框架 101
    8.3 什么是契約 103
    8.3.1 抽象類 104
    8.3.2 接口 105
    8.3.3 嘗試一起使用它們 107
    8.3.4 編譯器證據(jù) 109
    8.3.5 制定契約 109
    8.3.6 系統(tǒng)插入點(diǎn) 111
    8.4 一個電子商務(wù)的例子 111
    8.4.1 電子商務(wù)的問題 111
    8.4.2 非重用方法 112
    8.4.3 電子商務(wù)解決方案 114
    8.4.4 UML對象模型 114
    8.5 小結(jié) 117
    8.6 參考文獻(xiàn) 117
    第9章 創(chuàng)建對象 118
    9.1 組合關(guān)系 119
    9.2 協(xié)調(diào)地創(chuàng)建 119
    9.3 組合的類型 121
    9.3.1 聚合 121
    9.3.2 關(guān)聯(lián) 122
    9.3.3 同時(shí)使用聚合和關(guān)聯(lián) 123
    9.4 避免依賴性 123
    9.5 基數(shù)(Cardinality) 124
    9.5.1 多個對象的關(guān)聯(lián) 126
    9.5.2 可選的關(guān)聯(lián) 127
    9.6 同時(shí)使用這些關(guān)系:一個例子 127
    9.7 小結(jié) 128
    9.8 參考文獻(xiàn) 128
    第10章 使用UML創(chuàng)建對象模型 129
    10.1 什么是UML 129
    10.2 類圖的結(jié)構(gòu) 130
    10.3 屬性和方法 131
    10.3.1 屬性 131
    10.3.2 方法 131
    10.4 訪問標(biāo)號 132
    10.5 繼承 132
    10.6 接口 134
    10.7 組合 134
    10.7.1 聚合 134
    10.7.2 關(guān)聯(lián) 135
    10.8 基數(shù) 137
    10.9 小結(jié) 138
    10.10 參考文獻(xiàn) 138
    第11章 持久對象:串行化和關(guān)系數(shù)據(jù)庫 139
    11.1 持久對象的基礎(chǔ) 139
    11.2 把對象保存到“扁平”文件中 140
    11.2.1 串行化某個文件 141
    11.2.2 回顧實(shí)現(xiàn)和接口 142
    11.3 寫入關(guān)系數(shù)據(jù)庫中 143
    11.4 加載驅(qū)動程序 146
    11.4.1 建立連接 147
    11.4.2 SQL語句 147
    11.5 小結(jié) 150
    11.6 參考文獻(xiàn) 150
    第12章 對象和XML:可移植的數(shù)據(jù) 151
    12.1 可移植代碼 151
    12.2 可擴(kuò)展標(biāo)記語言(XML) 152
    12.3 XML與HTML 153
    12.4 XML和面向?qū)ο笳Z言 153
    12.5 在兩個公司之間共享數(shù)據(jù) 154
    12.6 用文檔類型定義檢驗(yàn)文檔 155
    12.7 把DTD集成到XML文檔中 156
    12.8 使用層疊式樣式表 161
    12.9 小結(jié) 163
    12.10 參考文獻(xiàn) 163
    第13章 對象和Internet 164
    13.1 基于對象的腳本編寫語言 164
    13.2 一個JavaScript驗(yàn)證的例子 166
    13.3 Java Applets是對象 170
    13.4 JavaBeans是對象 172
    13.5 小結(jié) 174
    13.6 參考文獻(xiàn) 174
    第14章 分布式對象和企業(yè) 175
    14.1 公共對象請求代理體系結(jié)構(gòu)(CORBA) 176
    14.2 Java的遠(yuǎn)程方法調(diào)用(RMI) 179
    14.3 Java的Enterprise JavaBeans 180
    14.4 企業(yè)JavaBeans的類型 182
    14.4.1 會話beans 183
    14.4.2 實(shí)體beans 183
    14.5 小結(jié) 184
    14.6 參考文獻(xiàn) 184
    第15章 設(shè)計(jì)模式 185
    15.1 為什么需要設(shè)計(jì)模式 185
    15.2 Smalltalk的模型/視圖/控制器 186
    15.3 設(shè)計(jì)模式的類型 188
    15.3.1 創(chuàng)建模式 188
    15.3.2 結(jié)構(gòu)模式 191
    15.3.3 行為模式 194
    15.4 反模式 195
    15.5 小結(jié) 196
    15.6 參考文獻(xiàn) 196





最新評論共有 0 位網(wǎng)友發(fā)表了評論
發(fā)表評論
評論內(nèi)容:不能超過250字,需審核,請自覺遵守互聯(lián)網(wǎng)相關(guān)政策法規(guī)。
用戶名: 密碼:
匿名?
注冊
主站蜘蛛池模板: 午夜免费视频| 中文字幕一区二区三区在线观看| 亚洲视频一区二区三区四区| 激情综合网五月| 伊人插| 好吊妞视频这里只有精品| 伊人狠狠色j香婷婷综合| 精品视频一区二区三区在线观看| 性做久久久久久网站| 久久99网站| 亚洲视频1| 国产成人系列| 欧美成人高清免费大片观看| 一本久道久久综合婷婷| 久久精品国产99久久| 一区二区三区四区五区| 国产综合一区二区| 五月天网站最新永久网址| 97在线视频网站| 精品欧美一区二区三区在线观看| 亚洲欧美色鬼久久综合| 大臿蕉香蕉大视频成人| 久久一区二区三区99| 亚洲影视在线| g0g0亚洲大胆肉体艺术| 久久国产欧美日韩高清专区| 亚洲图片另类| 丝袜诱惑一区二区| 91高清在线| 国产欧美精品专区一区二区| 欧洲a老妇女黄大片| 中文字幕一区二区三区四区| 国产精品第3页| 美女张开腿让男人桶爽的免费动漫| 一区二区三区四区五区| www.国产网站| 狠狠操操操| 免费超爽大片黄| 婷婷色站| 伊人色影院| 91久久线看在观草草青青|