分析模式

出版時間:2010年07月  出版社:機械工業(yè)出版社  作者:Martin Fowler  頁數(shù):319  譯者:樊東平,張路  
Tag標(biāo)簽:無  

前言

不久前,還沒有任何有關(guān)面向?qū)ο蠓治龊驮O(shè)計的書籍。而現(xiàn)在,卻有如此之多的書籍,以致于任何一個專業(yè)人員都無法全部涉獵。其中大部分書籍都專注于:傳授一種圖符表示法,提出一個簡單的建模過程,并用幾個簡單的示例來加以說明。本書是一本與它們完全不同的書。它并不把重點放在過程——即如何建模,而是把重點放在過程的結(jié)果——即模型本身。我是一個信息系統(tǒng)對象建模方面的顧問??蛻舫3F刚埼矣?xùn)練他們的員工如何建模和為他們的項目提供指導(dǎo)。我的大部分技能來自對建模技術(shù)以及如何運用這些技術(shù)的了解。然而,更重要的是我的實際經(jīng)驗,這些經(jīng)驗是在建造許多模型和經(jīng)常分析重復(fù)出現(xiàn)問題的過程中積累起來的。我經(jīng)常發(fā)現(xiàn)項目在很多方面會遇到以前我曾面對的同樣問題。這些經(jīng)驗使得我可以重用以前所建造的模型,我只需要對這些模型加以改進(jìn),使之適應(yīng)新的需求。在過去的幾年里,越來越多的人已經(jīng)意識到這一現(xiàn)象,并且認(rèn)識到那些通常介紹方法論的書籍雖然很有價值,但都只提出了學(xué)習(xí)過程的第一步,而這個學(xué)習(xí)過程還必須捕獲要被建模的實際事物本身。這種認(rèn)識逐漸發(fā)展成為“模式”運動,在這一運動中匯集了各種各樣的人,他們有著不同的興趣和觀點,卻抱著共同的目標(biāo),即傳播有用的軟件系統(tǒng)模式。由于這個模式群體構(gòu)成的多樣性,我們很難給“模式”一個準(zhǔn)確的定義。我們中的所有人都相信,一旦我們看到一個模式,就能辨別出它;我們認(rèn)為我們在大多數(shù)情況下是一致的,但我們無法給出一個簡單的定義。我對模式的定義是:模式是一種問題解決思路,它已經(jīng)適用于一個實踐環(huán)境,并且也可能適用于其它環(huán)境。我喜歡給出一個寬松的定義,因為我希望能盡可能地接近模式研究的初衷,而不需要增加太多限制性的內(nèi)容。模式可以有多種形式,而每一種形式增加了對于該模式有用的特性(1.2節(jié)討論有關(guān)模式研究的現(xiàn)狀以及本書所處的地位)。本書討論的是分析方面的模式,這些模式反映的是業(yè)務(wù)過程的概念架構(gòu),而不是實際的軟件實現(xiàn)。絕大部分章節(jié)討論不同業(yè)務(wù)領(lǐng)域的模式。這些模式很難按照傳統(tǒng)的行業(yè)(如制造、金融、醫(yī)療保健等)進(jìn)行分類,因為它們通??捎迷诙鄠€領(lǐng)域。這些模式非常重要,因為它們可以幫助我們了解人們對世界的認(rèn)識。基于這樣的認(rèn)識去設(shè)計計算機系統(tǒng)并確實去改變這種認(rèn)識是非常有價值的,而認(rèn)識中需要改變的地方正是需要進(jìn)行業(yè)務(wù)過程重組(BPR)的地方。然而,概念模式不可能孤立存在。對于軟件工程師來講,只有在他們明白如何實現(xiàn)概念模型時,這些概念模型才有用。本書介紹了一些可用于將概念模型轉(zhuǎn)化成軟件實現(xiàn)的模式,并且討論了在一個大型信息系統(tǒng)中這些軟件實現(xiàn)是如何適應(yīng)系統(tǒng)構(gòu)架的,另外還討論了使用這些模式的具體實現(xiàn)技巧。我寫本書是因為它也正是我在開始時想要閱讀的書。建模人員會從本書中找到可以幫助他們?nèi)绾卧谛骂I(lǐng)域中大展拳腳的基本思路。這些模式包括:有用的模型、設(shè)計背后的論證以及適用范圍。擁有這些信息,建模人員就可以為特定的問題改造現(xiàn)有的模型。

內(nèi)容概要

  《分析模式可復(fù)用的對象模型》的作者M(jìn)artin Fowler是國際著名的OO專家,敏捷開發(fā)方法的創(chuàng)始人之一,現(xiàn)為ThoughtWorks公司的首席科學(xué)家,《分析模式可復(fù)用的對象模型》是作者的代表作之一,深受業(yè)界專業(yè)人士和廣大讀者的好評,經(jīng)久不衰。  《分析模式可復(fù)用的對象模型》講述各種分析模式(即來自概念性業(yè)務(wù)模型的模式)和支持模式(即講述如何使用分析模式的輔助性模式),把論述重點放在介紹面向?qū)ο蠓治龊驮O(shè)計的最終結(jié)果—即模型本身。作者透過平實樸素的語言,將自己豐富的對象建模經(jīng)驗與讀者分享,使讀者可以馬上采納這些經(jīng)驗性模式。  《分析模式可復(fù)用的對象模型》適合的讀者范圍非常廣:面向?qū)ο蟮挠嬎銠C分析人員和設(shè)計人員(尤其是那些參與系統(tǒng)分析的人員)、數(shù)據(jù)建模人員、編程人員以及專業(yè)的軟件工程師都可以從《分析模式可復(fù)用的對象模型》中獲得寶貴的知識和經(jīng)驗。

作者簡介

作者:(英國)福勒(Martin Fowler) 譯者:樊東平 張路 等福勒(Martin Fowler),在面向?qū)ο蠓治鲈O(shè)計、UML、模式、軟件開發(fā)方法學(xué)、XP、重構(gòu)等方面,都是世界頂級的專家,現(xiàn)為Thought Works公司的首席科學(xué)家。Thougtlt Works是一家從事企業(yè)應(yīng)用開發(fā)和集成的公司。早在20世紀(jì)80年代,F(xiàn)owler就是使用對象技術(shù)構(gòu)建多層企業(yè)應(yīng)用的倡導(dǎo)者,他著有幾本經(jīng)典書籍:《分析模式》、《UML精粹》和《重構(gòu)》等。

書籍目錄

Ralph Johnson序 Ward Cunningham序 前言 第1章 緒論 1 1.1 概念模型 1 1.2 模式世界 4 1.2.1 Christopher Alexander 5 1.2.2 描述格式 5 1.2.3 關(guān)于模式的抽象程度 6 1.3 本書中的模式 7 1.3.1 建模實例 8 1.3.2 模式的來源 8 1.3.3 跨領(lǐng)域的模式 9 1.4 概念模型與業(yè)務(wù)過程重組 9 1.5 模式與框架 10 1.6 本書的使用 11 第一部分 分析模式 第2章 責(zé)任模式 17 2.1 團(tuán)體 18 2.2 組織層次 19 2.3 組織結(jié)構(gòu) 21 2.4 責(zé)任 22 2.5 責(zé)任知識級 24 2.6 團(tuán)體類型泛化 26 2.7 層次型責(zé)任 27 2.8 操作范圍 29 2.9 職位 31 第3章 觀察和測量模式 33 3.1 數(shù)量 34 3.2 轉(zhuǎn)換率 36 3.3 復(fù)合單位 37 3.4 測量 38 3.5 觀察 40 3.6 觀察概念的子類型化 43 3.7 觀察方案 44 3.8 雙時間記錄 44 3.9 被否決的觀察 45 3.10 臨床觀察、假設(shè)與推理 45 3.11 關(guān)聯(lián)觀察 46 3.12 觀察過程 48 第4章 針對公司財務(wù)的觀察模式 52 4.1 企業(yè)片斷 53 4.1.1 定義維度 57 4.1.2 維度的屬性以及企業(yè)片斷 59 4.2 測量方案 60 4.2.1 保持計算的有效性 61 4.2.2 比較和因果測量方案 62 4.2.3 狀態(tài)類型:定義計劃的和實際的狀態(tài) 63 4.2.4 構(gòu)造測量 66 4.2.5 維度合并 66 4.3 范圍 69 4.4 帶范圍的現(xiàn)象 70 4.4.1 帶范圍屬性的現(xiàn)象 71 4.4.2 范圍函數(shù) 73 4.5 使用最終框架 75 第5章 引用對象 77 5.1 名稱 77 5.2 標(biāo)識方案 79 5.3 對象合并 81 5.3.1 復(fù)制并替換 82 5.3.2 替代 82 5.3.3 本質(zhì)/表象 83 5.4 對象等價 83 第6章 庫存與賬務(wù) 85 6.1 賬目 87 6.2 事務(wù) 88 6.3 匯總賬目 90 6.4 備注賬目 92 6.5 記入規(guī)則 93 6.5.1 可逆性 94 6.5.2 不使用事務(wù) 94 6.6 個體實例方法 95 6.6.1 使用singleton類實現(xiàn) 95 6.6.2 使用策略模式實現(xiàn) 96 6.6.3 使用內(nèi)部case語句實現(xiàn) 97 6.6.4 使用參數(shù)化方法實現(xiàn) 98 6.6.5 使用解釋器實現(xiàn) 98 6.6.6 實現(xiàn)方式的選擇 99 6.7 記入規(guī)則的執(zhí)行 99 6.7.1 急切觸發(fā) 99 6.7.2 基于賬目的觸發(fā) 101 6.7.3 基于記入規(guī)則的觸發(fā) 102 6.7.4 向后鏈?zhǔn)接|發(fā) 102 6.7.5 觸發(fā)手段的比較 102 6.8 多個賬目的記入規(guī)則 103 6.9 選擇條目 106 6.10 賬務(wù)實踐 107 6.11 條目來源 109 6.12 結(jié)算單和所得計算書 110 6.13 對應(yīng)賬目 111 6.14 專門化的賬目模型 112 6.15 登記條目到多個賬目 113 6.15.1 使用備注賬目 116 6.15.2 派生賬目 116 進(jìn)一步閱讀 118 第7章 使用財務(wù)模型 119 7.1 結(jié)構(gòu)模型 120 7.2 結(jié)構(gòu)的實現(xiàn) 122 7.3 設(shè)置新的電話服務(wù) 124 7.4 建立通話 126 7.5 實現(xiàn)基于賬目的觸發(fā) 127 7.6 把電話分成白天和夜晚兩類 128 7.7 按時間收費 130 7.8 計算稅款 133 7.9 結(jié)論 134 7.9.1 記入規(guī)則的結(jié)構(gòu) 134 7.9.2 什么時候不能使用框架 136 7.9.3 賬務(wù)實踐圖 137 第8章 計劃 139 8.1 提議和執(zhí)行的動作 140 8.2 完成和放棄的動作 141 8.3 掛起 142 8.4 計劃 143 8.5 方案 146 8.6 資源分配 149 8.7 輸出和啟動函數(shù) 153 第9章 交易 156 9.1 合同 156 9.2 合同夾 160 9.3 報價 165 9.4 場景 168 第10章 派生合同 176 10.1 期貨合同 177 10.2 期權(quán) 179 10.2.1 多頭、空頭、看漲和看跌:體現(xiàn)一種謀略的詞匯 181 10.2.2 子類型化或者非子類型化 182 10.3 產(chǎn)品 184 10.4 子類型狀態(tài)機 188 10.4.1 確保狀態(tài)圖的一致 190 10.4.2 一致性的使用問題 192 10.5 并行的應(yīng)用和領(lǐng)域?qū)哟谓Y(jié)構(gòu) 194 10.5.1 應(yīng)用外觀的類型檢查 195 10.5.2 給超類型一個包裝性接口 196 10.5.3 使用一個運行時屬性 196 10.5.4 使應(yīng)用外觀對領(lǐng)域模型可見 198 10.5.5 使用異常處理 199 第11章 交易包 201 11.1 對一個包的多重訪問級別 201 11.2 相互可見性 205 11.3 包的子類型化 208 11.4 結(jié)論 209 第二部分 支持模式 第12章 信息系統(tǒng)的分層構(gòu)架 213 12.1 兩層構(gòu)架 214 12.2 三層構(gòu)架 215 12.3 表示層和應(yīng)用邏輯層 218 12.3.1 表示層/應(yīng)用邏輯層分離的優(yōu)點 222 12.3.2 在客戶/服務(wù)器環(huán)境中伸展外觀 222 12.4 數(shù)據(jù)庫交互 224 12.4.1 把領(lǐng)域?qū)舆B接到數(shù)據(jù)源 224 12.4.2 數(shù)據(jù)庫接口層 225 12.5 結(jié)論 227 第13章 應(yīng)用外觀 229 13.1 一個醫(yī)療保健示例 229 13.2 外觀的內(nèi)容 231 13.2.1 方法的類型 232 13.2.2 樣本方法 233 13.3 公共方法 234 13.4 操作 235 13.5 類型轉(zhuǎn)換 236 13.6 多重外觀 237 第14章 類型模型的模式—設(shè)計模板 240 14.1 實現(xiàn)關(guān)聯(lián) 242 14.1.1 雙向關(guān)聯(lián)和單向關(guān)聯(lián) 243 14.1.2 關(guān)聯(lián)的接口 243 14.1.3 基礎(chǔ)類型 245 14.1.4 實現(xiàn)一個單向關(guān)聯(lián) 246 14.1.5 在兩個方向上都使用指針的雙向?qū)崿F(xiàn) 246 14.1.6 在一個方向上使用指針的雙向?qū)崿F(xiàn) 247 14.1.7 使用關(guān)聯(lián)對象的雙向?qū)崿F(xiàn) 248 14.1.8 雙向?qū)崿F(xiàn)的比較 248 14.1.9 派生映射 249 14.1.10 非集合映射 249 14.2 實現(xiàn)泛化 249 14.2.1 用繼承實現(xiàn) 249 14.2.2 用多重繼承組合類實現(xiàn) 250 14.2.3 用標(biāo)志實現(xiàn) 250 14.2.4 用委托給一個隱藏類來實現(xiàn) 251 14.2.5 通過創(chuàng)建一個替換來實現(xiàn) 253 14.2.6 泛化的接口 254 14.2.7 實現(xiàn)hasType操作 255 14.3 對象創(chuàng)建 255 14.3.1 創(chuàng)建的接口 256 14.3.2 創(chuàng)建的實現(xiàn) 256 14.4 對象析構(gòu) 256 14.4.1 析構(gòu)的接口 257 14.4.2 析構(gòu)的實現(xiàn) 257 14.5 入口點 258 14.5.1 查找對象的接口 259 14.5.2 查找操作的實現(xiàn) 260 14.5.3 使用類或者登記表對象 260 14.6 實現(xiàn)約束 260 14.7 其它技術(shù)的設(shè)計模板 261 第15章 關(guān)聯(lián)模式 263 15.1 關(guān)聯(lián)類型 264 15.2 帶鍵值的映射 266 15.3 歷史映射 268 第16章 后記 273 第三部分 附 錄 附錄A 技術(shù)和符號 277 附錄B 模式列表 293 索引 301

章節(jié)摘錄

插圖:如果一個模型有多個隸屬層次關(guān)系,我們可以用一種類型化的關(guān)系(如圖2.6 所示)來表示。我們把層次關(guān)聯(lián)關(guān)系轉(zhuǎn)化成一種類型,通過使用組織結(jié)構(gòu)類型的不同實例來區(qū)分不同的層次關(guān)系。這樣就能用組織結(jié)構(gòu)的兩個實例(銷售組織和服務(wù)組織)來處理上一節(jié)的場景(雙層次關(guān)系)。新產(chǎn)生的層次關(guān)系可以通過簡單地增加新的組織結(jié)構(gòu)類型的方式加以處理。顯然,這種抽象方式使我們能夠在復(fù)雜性適度增加的情況下的增加更多的系統(tǒng)柔性。對于雙層次關(guān)系,這樣去做并不值得,但對于多層次關(guān)系,就很有必要。另外請注意,組織結(jié)構(gòu)有時間周期;這使我們可以有效地記錄組織結(jié)構(gòu)的周期性變化。進(jìn)而要注意的是,我并沒有把組織結(jié)構(gòu)類型看成是一種屬性——類型屬性是一個很重要的概念,我們將在后面具體談到。例:為波士頓的2176大容量卡布奇諾咖啡機而設(shè)立的服務(wù)小組向波士頓的銷售辦事處負(fù)責(zé)。我們可以將其刻畫成這樣一個組織結(jié)構(gòu)模型:父節(jié)點是波士頓的銷售辦事處,子節(jié)點是波士頓的2176服務(wù)小組,組織結(jié)構(gòu)類型叫做產(chǎn)品線管理。例:為波士頓的2176大容量卡布奇諾咖啡機而設(shè)立的服務(wù)小組向產(chǎn)品支持結(jié)構(gòu)中的2170產(chǎn)品系列服務(wù)中心負(fù)責(zé)。我們可以把它看成是一個單獨的組織結(jié)構(gòu),它的父節(jié)點是2170產(chǎn)品系列服務(wù)中心,而子節(jié)點是波士頓的2176服務(wù)小組。組織結(jié)構(gòu)類型叫做產(chǎn)品支持。要簡化對象結(jié)構(gòu),應(yīng)把重點放在約束規(guī)則上。這些規(guī)則的具體形式可以是:“對于一個組織結(jié)構(gòu),如果其類型是銷售組織并且其子節(jié)點是一個部門的話,那么其父節(jié)點必須是一個區(qū)域子公司”。請注意,約束規(guī)則被表示成指向組織結(jié)構(gòu)的屬性,其暗含著約束規(guī)則針對該組織結(jié)構(gòu)。然而,這也意味著當(dāng)通過增加新的組織結(jié)構(gòu)類型的方式來擴(kuò)展系統(tǒng)時,會改變該組織結(jié)構(gòu)中的約束規(guī)則。而且,隨著組織結(jié)構(gòu)類型數(shù)量的增加,這些規(guī)則將變得難以處理??梢园鸭s束規(guī)則放到組織結(jié)構(gòu)類型中(如圖2-7所示)。針對特定的組織結(jié)構(gòu)類型的所有規(guī)則被集中到一個地方,這樣便于增加新的組織結(jié)構(gòu)類型。然而,如果我們很少改變組織結(jié)構(gòu)類型而是經(jīng)常增加新的組織子類型,圖2-7就難以處理了。在這種情況下,組織子類型的每次增加都會導(dǎo)致約束規(guī)則的改變。更好的方法是讓約束規(guī)則跟隨組織子類型。概括起來,我們的目標(biāo)是盡量減小模型的變化。我們應(yīng)該按照這種方式,在不影響模型的其它部分的前提下,把約束規(guī)則放在最容易發(fā)生變化的地方。

媒體關(guān)注與評論

“本書是對不斷發(fā)展的模式文獻(xiàn)的一個重要貢獻(xiàn)。它捕捉來自不同領(lǐng)域的深奧的對象建模專業(yè)知識,形成一個模式目錄。這些領(lǐng)域模式將有助于你解決不同領(lǐng)域中具有挑戰(zhàn)性的建模問題。”    ——Erich Gamma  “Martin Fowler為我們給出答案,而不僅僅是一個可以找到這些答案的過程。在本書中,透過作者平實樸素的語言,你將找到自己下一個業(yè)務(wù)對象模型的重要內(nèi)容?!?   ——Ward Cunningham  “就像‘四人幫’在他們的經(jīng)典著作《設(shè)計模式》中總結(jié)出了通用的設(shè)計模式,Martin Fowler在這本讓人期待已久的書中為我們總結(jié)出應(yīng)用領(lǐng)域的諸多模式。本書是從事面向?qū)ο髽I(yè)務(wù)建模和業(yè)務(wù)過程重組工作的所有分析人員和設(shè)計人員的必備之書。”    ——Donald G. Firesmith

編輯推薦

《分析模式可復(fù)用的對象模型》:Martin Fowler認(rèn)識到面向?qū)ο笱芯繄F(tuán)體需要一本超越傳統(tǒng)方法學(xué)著作所包含的工具和技術(shù)的書,因此撰寫了《分析模式可復(fù)用的對象模型》,重點介紹面向?qū)ο蠓治龊驮O(shè)計的最終結(jié)果——模型本身。他將自己豐富的對象建模專業(yè)經(jīng)驗與讀者分享,著眼于找出重復(fù)問題并把這些問題轉(zhuǎn)換為可復(fù)用的模型?!斗治瞿J娇蓮?fù)用的對象模型》提供一個模式目錄,涉及交易.測量、財務(wù)和組織內(nèi)部關(guān)系等廣泛領(lǐng)域。鑒于概念模式不能孤立存在,Martin Fowler還提出一系列“支持模式”,這些支持模式討論如何將概念模式轉(zhuǎn)變?yōu)檫m合大型信息系統(tǒng)構(gòu)架的軟件。在介紹每種模式時,都講述設(shè)計背后的緣由以及使用這種模式的規(guī)則。書中的示例包含有用模型的使用細(xì)節(jié)并進(jìn)一步探討了將會改進(jìn)分析、建模和實現(xiàn)的復(fù)用技巧。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    分析模式 PDF格式下載


用戶評論 (總計13條)

 
 

  •   對于真正修行的人來講,該書卻是很好的一個起點。書中所總結(jié)的模式是多年來業(yè)界應(yīng)用的貫通,乃至于筆者在一次項目中接觸SAP的模型結(jié)構(gòu)時有種似曾相識的感覺,對自己進(jìn)行模型抽象有直接的指導(dǎo)作用。但是該書對于設(shè)計新手來講也有一定的副作用,和初學(xué)設(shè)計模式的新手一樣,看完該書后會有種躍躍欲試的感覺,設(shè)計原則第一條從簡單開始,過度設(shè)計是首先應(yīng)該注意的。當(dāng)然,對于超脫五行以外,頓悟虛無奧秘的仁兄,這本書看與不看,意義不大了。
  •   書很新,非常不錯~ 呵呵
  •   內(nèi)容太舊,而且一般,賞鑒后不好
  •   書本事不錯,但發(fā)的貨,這本書是壞的,郁悶,希望以后能注意點。
  •   買來的時候沒注意里面,打開時發(fā)現(xiàn)卓越居然把這種書都賣出來了,好像是有人踩過踹過,臟且破,非常不堪。一直在卓越買書,本來很放心他家的貨,這次太失望了。
  •   太古老了,對現(xiàn)在程序設(shè)計已經(jīng)失去太多的參考意義
  •   經(jīng)典必讀哦
  •   書還好了,挺便宜的,紙張也還行
  •   買回來就給同事看了。自己還沒看。
  •   精典的好書
  •   不錯,好東西
  •   這么快就到了
  •   經(jīng)典之作,沒什么好說的!
 

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

京ICP備13047387號-7