企業(yè)應(yīng)用架構(gòu)模式非常全面地簡(jiǎn)述了一個(gè)項(xiàng)目的架構(gòu),從前端到業(yè)務(wù)層,再到數(shù)據(jù)層,非常全面,層和層的關(guān)系,需要注意的問題,內(nèi)容十分詳細(xì)。正如有的讀者所評(píng)價(jià)的一樣“Martin Fowler的書行文風(fēng)格一向流暢輕松,如果重構(gòu)是經(jīng)典的話,那這本書就是經(jīng)典中的經(jīng)典”。本節(jié)內(nèi)容小編為大家整理帶來的是一份pdf格式完整高清版企業(yè)應(yīng)用架構(gòu)模式電子書,中文版經(jīng)典重讀,需要查閱的朋友點(diǎn)擊本文相應(yīng)的下載地址進(jìn)行下載即可。
企業(yè)應(yīng)用架構(gòu)模式簡(jiǎn)介
該書是為致力于設(shè)計(jì)和構(gòu)建企業(yè)應(yīng)用的軟件架構(gòu)師、設(shè)計(jì)人員和編程人員而寫的,同時(shí)也可作為高等院校計(jì)算機(jī)專業(yè)及軟件學(xué)院相關(guān)課程的參考教材。
該書作者是當(dāng)今面向?qū)ο筌浖_發(fā)的權(quán)威,他在一組專家級(jí)合作者的幫助下,將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,最終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺(tái)的、關(guān)于解決方案的、不可或缺的手冊(cè)!镀髽I(yè)應(yīng)用架構(gòu)模式》獲得了2003年度美國軟件開發(fā)雜志圖書類的生產(chǎn)效率獎(jiǎng)和讀者選擇獎(jiǎng)!镀髽I(yè)應(yīng)用架構(gòu)模式》分為兩大部分。第一部分是關(guān)于如何開發(fā)企業(yè)應(yīng)用的簡(jiǎn)單介紹。第二部分是《企業(yè)應(yīng)用架構(gòu)模式》的主體,是關(guān)于模式的詳細(xì)參考手冊(cè),每個(gè)模式都給出使用方法和實(shí)現(xiàn)信息,并配以詳細(xì)的Java代碼或C#代碼示例。此外,整《企業(yè)應(yīng)用架構(gòu)模式》中還用了大量UML圖來進(jìn)一步闡明有關(guān)概念。
企業(yè)應(yīng)用架構(gòu)模式目錄
譯者序
前言
模式列表
引言 1
0.1 架構(gòu) 1
0.2 企業(yè)應(yīng)用 2
0.3 企業(yè)應(yīng)用的種類 3
0.4 關(guān)于性能的考慮 4
0.5 模式 6
0.5.1 模式的結(jié)構(gòu) 7
0.5.2 模式的局限性 9
第一部分 表述
第1章 分層 12
1.1 企業(yè)應(yīng)用中層次的演化 13
1.2 三個(gè)基本層次 14
1.3 為各層選擇運(yùn)行環(huán)境 15
第2章 組織領(lǐng)域邏輯 19
2.1 抉擇 22
2.2 服務(wù)層 23
第3章 映射到關(guān)系數(shù)據(jù)庫 25
.3.1 架構(gòu)模式 25
3.2 行為問題 28
3.3 讀取數(shù)據(jù) 29
3.4 結(jié)構(gòu)映射模式 30
3.4.1 關(guān)系的映射 30
3.4.2 繼承 33
3.5 建立映射 34
3.6 使用元數(shù)據(jù) 35
3.7 數(shù)據(jù)庫連接 36
3.8 其他問題 38
3.9 進(jìn)一步閱讀 38
第4章 Web表現(xiàn)層 39
4.1 視圖模式 41
4.2 輸入控制器模式 43
4.3 進(jìn)一步閱讀 43
第5章 并發(fā) 45
5.1 并發(fā)問題 45
5.2 執(zhí)行語境 46
5.3 隔離與不變性 47
5.4 樂觀并發(fā)控制和悲觀并發(fā)控制 48
5.4.1 避免不一致讀 49
5.4.2 死鎖 49
5.5 事務(wù) 50
5.5.1 ACID 51
5.5.2 事務(wù)資源 51
5.5.3 減少事務(wù)隔離以提高靈活性 52
5.5.4 業(yè)務(wù)事務(wù)和系統(tǒng)事務(wù) 53
5.6 離線并發(fā)控制的模式 54
5.7 應(yīng)用服務(wù)器并發(fā) 55
5.8 進(jìn)一步閱讀 56
第6章 會(huì)話狀態(tài) 57
6.1 無狀態(tài)的價(jià)值 57
6.2 會(huì)話狀態(tài) 58
6.3 存儲(chǔ)會(huì)話狀態(tài)的方法 59
第7章 分布策略 61
7.1 分布對(duì)象的誘惑 61
7.2 遠(yuǎn)程接口和本地接口 62
7.3 必須使用分布的情況 63
7.4 關(guān)于分布邊界 64
7.5 分布接口 64
第8章 通盤考慮 67
8.1 從領(lǐng)域?qū)娱_始 67
8.2 深入到數(shù)據(jù)源層 68
8.2.1 事務(wù)腳本的數(shù)據(jù)源 68
8.2.2 表模塊的數(shù)據(jù)源 69
8.2.3 領(lǐng)域模型的數(shù)據(jù)源 69
8.3 表現(xiàn)層 69
8.4 一些關(guān)于具體技術(shù)的建議 70
8.4.1 Java和J2EE 70
8.4.2 .NET 71
8.4.3 存儲(chǔ)過程 71
8.4.4 Web Services 72
8.5 其他分層方式 72
第二部分 模 式
第9章 領(lǐng)域邏輯模式 76
9.1 事務(wù)腳本(Transaction Script) 76
9.1.1 運(yùn)行機(jī)制 76
9.1.2 使用時(shí)機(jī) 77
9.1.3 收入確認(rèn)問題 78
9.1.4 例:收入確認(rèn)(Java) 78
9.2 領(lǐng)域模型(Domain Model) 81
9.2.1 運(yùn)行機(jī)制 81
9.2.2 使用時(shí)機(jī) 83
9.2.3 進(jìn)一步閱讀 83
9.2.4 例:收入確認(rèn)(Java) 84
9.3 表模塊(Table Module) 87
9.3.1 運(yùn)行機(jī)制 88
9.3.2 使用時(shí)機(jī) 90
9.3.3 例:基于表模塊的收入確認(rèn)(C#) 90
9.4 服務(wù)層(Service Layer) 93
9.4.1 運(yùn)行機(jī)制 94
9.4.2 使用時(shí)機(jī) 96
9.4.3 進(jìn)一步閱讀 96
9.4.4 例:收入確認(rèn)(Java) 96
第10章 數(shù)據(jù)源架構(gòu)模式 101
10.1 表數(shù)據(jù)入口(Table Data Gateway) 101
10.1.1 運(yùn)行機(jī)制 101
10.1.2 使用時(shí)機(jī) 102
10.1.3 進(jìn)一步閱讀 102
10.1.4 例:人員入口(C#) 103
10.1.5 例:使用ADO.NET數(shù)據(jù)集(C#) 104
10.2 行數(shù)據(jù)入口(Row Data Gateway) 106
10.2.1 運(yùn)行機(jī)制 107
10.2.2 使用時(shí)機(jī) 108
10.2.3 例:人員記錄(Java) 108
10.2.4 例:領(lǐng)域?qū)ο蟮臄?shù)據(jù)保持器(Java) 111
10.3 活動(dòng)記錄(Active Record) 112
10.3.1 運(yùn)行機(jī)制 112
10.3.2 使用時(shí)機(jī) 113
10.3.3 例:一個(gè)簡(jiǎn)單的Person類(Java) 113
10.4 數(shù)據(jù)映射器(Data Mapper) 115
10.4.1 運(yùn)行機(jī)制 116
10.4.2 使用時(shí)機(jī) 119
10.4.3 例:一個(gè)簡(jiǎn)單的數(shù)據(jù)映射器(Java) 119
10.4.4 例:分離查找方法(Java) 123
10.4.5 例:創(chuàng)建一個(gè)空對(duì)象(Java) 126
第11章 對(duì)象-關(guān)系行為模式 129
11.1 工作單元(Unit of Work) 129
11.1.1 運(yùn)行機(jī)制 129
11.1.2 使用時(shí)機(jī) 133
11.1.3 例:使用對(duì)象注冊(cè)的工作單元(Java) 134
11.2 標(biāo)識(shí)映射(Identity Map) 137
11.2.1 運(yùn)行機(jī)制 137
11.2.2 使用時(shí)機(jī) 139
11.2.3 例:標(biāo)識(shí)映射中的方法(Java) 139
11.3 延遲加載(Lazy Load) 140
11.3.1 運(yùn)作機(jī)制 140
11.3.2 使用時(shí)機(jī) 142
11.3.3 例:延遲初始化(Java) 142
11.3.4 例:虛代理(Java) 142
11.3.5 例:使用值保持器(Java) 144
11.3.6 例:使用重影(C#) 144
第12章 對(duì)象-關(guān)系結(jié)構(gòu)模式 151
12.1 標(biāo)識(shí)域(Identity Field) 151
12.1.1 工作機(jī)制 151
12.1.2 使用時(shí)機(jī) 154
12.1.3 進(jìn)一步閱讀 154
12.1.4 例:整型鍵(C#) 154
12.1.5 例:使用鍵表(Java) 155
12.1.6 例:使用組合鍵(Java) 157
12.2 外鍵映射(Foreign Key Mapping) 166
12.2.1 運(yùn)行機(jī)制 167
12.2.2 使用時(shí)機(jī) 169
12.2.3 例:?jiǎn)沃狄茫↗ava) 169
12.2.4 例:多表查詢(Java) 172
12.2.5 例:引用集合(C#) 173
12.3 關(guān)聯(lián)表映射(Association Table Mapping) 175
12.3.1 運(yùn)行機(jī)制 176
12.3.2 使用時(shí)機(jī) 176
12.3.3 例:雇員和技能(C#) 177
12.3.4 例:使用直接的SQL(Java) 179
12.3.5 例:用一次查詢查多個(gè)雇員(Java) 182
12.4 依賴映射(Dependent Mapping) 186
12.4.1 運(yùn)行機(jī)制 186
12.4.2 使用時(shí)機(jī) 187
12.4.3 例:唱片和曲目(Java) 188
12.5 嵌入值(Embedded Value) 190
12.5.1 運(yùn)行機(jī)制 190
12.5.2 使用時(shí)機(jī) 190
12.5.3 進(jìn)一步閱讀 191
12.5.4 例:簡(jiǎn)單值對(duì)象(Java) 191
12.6 序列化LOB(Serialized LOB) 192
12.6.1 運(yùn)行機(jī)制 193
12.6.2 使用時(shí)機(jī) 194
12.6.3 例:在XML中序列化一個(gè)部門層級(jí)(Java) 194
12.7 單表繼承(Single Table Inheritance) 196
12.7.1 運(yùn)行機(jī)制 197
12.7.2 使用時(shí)機(jī) 197
12.7.3 例:運(yùn)動(dòng)員的單表(C#) 198
12.7.4 從數(shù)據(jù)庫中加載對(duì)象 199
12.8 類表繼承(Class Table Inheritance) 202
12.8.1 運(yùn)行機(jī)制 202
12.8.2 使用時(shí)機(jī) 203
12.8.3 進(jìn)一步閱讀 203
12.8.4 例:運(yùn)動(dòng)員和他們的家屬(C#) 203
12.9 具體表繼承(Concrete Table Inheritance) 208
12.9.1 運(yùn)行機(jī)制 209
12.9.2 使用時(shí)機(jī) 210
12.9.3 例:具體運(yùn)動(dòng)員(C#) 210
12.10 繼承映射器(Inheritance Mappers) 214
12.10.1 運(yùn)行機(jī)制 215
12.10.2 使用時(shí)機(jī) 216
第13章 對(duì)象-關(guān)系元數(shù)據(jù)映射模式 217
13.1 元數(shù)據(jù)映射(Metadata Mapping) 217
13.1.1 運(yùn)行機(jī)制 217
13.1.2 使用時(shí)機(jī) 218
13.1.3 例:使用元數(shù)據(jù)和反射(Java) 219
13.2 查詢對(duì)象(Query Object) 224
13.2.1 運(yùn)行機(jī)制 225
13.2.2 使用時(shí)機(jī) 225
13.2.3 進(jìn)一步閱讀 226
13.2.4 例:簡(jiǎn)單的查詢對(duì)象(Java) 226
13.3 資源庫(Repository) 228
13.3.1 運(yùn)行機(jī)制 229
13.3.2 使用時(shí)機(jī) 230
13.3.3 進(jìn)一步閱讀 231
13.3.4 例:查找一個(gè)人所在的部門(Java) 231
13.3.5 例:資源庫交換策略(Java) 231
第14章 Web表現(xiàn)模式 233
14.1 模型-視圖-控制器(Model View Controller) 233
14.1.1 運(yùn)行機(jī)制 233
14.1.2 使用時(shí)機(jī) 234
14.2 頁面控制器(Page Controller) 235
14.2.1 運(yùn)行機(jī)制 235
14.2.2 使用時(shí)機(jī) 236
14.2.3 例:Servlet控制器和JSP視圖的簡(jiǎn)單演示(Java) 236
14.2.4 例:使用JSP充當(dāng)處理程序(Java) 238
14.2.5 例:代碼隱藏的頁面控制器(C#) 241
14.3 前端控制器(Front Controller) 243
14.3.1 運(yùn)行機(jī)制 244
14.3.2 使用時(shí)機(jī) 245
14.3.3 進(jìn)一步閱讀 246
14.3.4 例:簡(jiǎn)單的顯示(Java) 246
14.4 模板視圖(Template View) 248
14.4.1 運(yùn)行機(jī)制 249
14.4.2 使用時(shí)機(jī) 251
14.4.3 例:分離的控制器,使用JSP充當(dāng)視圖(Java) 252
14.4.4 例:ASP.NET服務(wù)器頁面(C#) 253
14.5 轉(zhuǎn)換視圖(Transform View) 256
14.5.1 運(yùn)行機(jī)制 256
14.5.2 使用時(shí)機(jī) 257
14.5.3 例:簡(jiǎn)單的轉(zhuǎn)換(Java) 257
14.6 兩步視圖(Two Step View) 259
14.6.1 運(yùn)行機(jī)制 259
14.6.2 使用時(shí)機(jī) 260
14.6.3 例:兩階XSLT(XSLT) 264
14.6.4 例:JSP和定制標(biāo)記(Java) 266
14.7 應(yīng)用控制器(Application Controller) 269
14.7.1 運(yùn)行機(jī)制 270
14.7.2 使用時(shí)機(jī) 271
14.7.3 進(jìn)一步閱讀 271
14.7.4 例:狀態(tài)模型應(yīng)用控制器(Java) 271
第15章 分布模式 275
15.1 遠(yuǎn)程外觀(Remote Facade) 275
15.1.1 運(yùn)行機(jī)制 276
15.1.2 使用時(shí)機(jī) 278
15.1.3 例:使用Java語言的會(huì)話bean來作為遠(yuǎn)程外觀(Java) 278
15.1.4 例:Web Service(C#) 281
15.2 數(shù)據(jù)傳輸對(duì)象(Data Transfer Object) 285
15.2.1 運(yùn)行機(jī)制 285
15.2.2 使用時(shí)機(jī) 288
15.2.3 進(jìn)一步閱讀 289
15.2.4 例:傳輸唱片信息(Java) 289
15.2.5 例:使用XML實(shí)現(xiàn)序列化(Java) 293
第16章 離線并發(fā)模式 295
16.1 樂觀離線鎖(Optimistic Offline Lock) 295
16.1.1 運(yùn)行機(jī)制 296
16.1.2 使用時(shí)機(jī) 298
16.1.3 例:領(lǐng)域?qū)优c數(shù)據(jù)映射器(Java) 298
16.2 悲觀離線鎖(Pessimistic Offline Lock) 302
16.2.1 運(yùn)行機(jī)制 303
16.2.2 使用時(shí)機(jī) 305
16.2.3 例:簡(jiǎn)單鎖管理對(duì)象(Java) 305
16.3 粗粒度鎖(Coarse-Grained Lock) 310
16.3.1 運(yùn)行機(jī)制 310
16.3.2 使用時(shí)機(jī) 312
16.3.3 例:共享的樂觀離線鎖(Java) 312
16.3.4 例:共享的悲觀離線鎖(Java) 316
16.3.5 例:根對(duì)象樂觀離線鎖(Java) 317
16.4 隱含鎖(Implicit Lock) 318
16.4.1 運(yùn)行機(jī)制 318
16.4.2 使用時(shí)機(jī) 319
16.4.3 例:隱含的悲觀離線鎖(Java) 319
第17章 會(huì)話狀態(tài)模式 321
17.1 客戶會(huì)話狀態(tài)(Client Session State) 321
17.1.1 運(yùn)行機(jī)制 321
17.1.2 使用時(shí)機(jī) 322
17.2 服務(wù)器會(huì)話狀態(tài)(Server Session State) 322
17.2.1 運(yùn)行機(jī)制 322
17.2.2 使用時(shí)機(jī) 324
17.3 數(shù)據(jù)庫會(huì)話狀態(tài)(Database Session State) 324
17.3.1 運(yùn)行機(jī)制 324
17.3.2 使用時(shí)機(jī) 325
第18章 基本模式 327
18.1 入口(Gateway) 327
18.1.1 運(yùn)行機(jī)制 327
18.1.2 使用時(shí)機(jī) 328
18.1.3 例:私有消息服務(wù)的入口(Java) 329
18.2 映射器(Mapper) 331
18.2.1 運(yùn)行機(jī)制 332
18.2.2 使用時(shí)機(jī) 332
18.3 層超類型(Layer Supertype) 332
18.3.1 運(yùn)行機(jī)制 332
18.3.2 使用時(shí)機(jī) 333
18.3.3 例:領(lǐng)域?qū)ο螅↗ava) 333
18.4 分離接口(Separated Interface) 333
18.4.1 運(yùn)行機(jī)制 334
18.4.2 使用時(shí)機(jī) 335
18.5 注冊(cè)表(Registry) 335
18.5.1 運(yùn)行機(jī)制 336
18.5.2 使用時(shí)機(jī) 337
18.5.3 例:?jiǎn)巫幼?cè)表(Java) 337
18.5.4 例:線程安全的注冊(cè)表(Java) 338
18.6 值對(duì)象(Value Object) 339
18.6.1 運(yùn)行機(jī)制 339
18.6.2 使用時(shí)機(jī) 340
18.7 貨幣(Money) 340
18.7.1 運(yùn)行機(jī)制 341
18.7.2 使用時(shí)機(jī) 342
18.7.3 例:貨幣類(Java) 343
18.8 特殊情況(Special Case) 346
18.8.1 運(yùn)行機(jī)制 347
18.8.2 使用時(shí)機(jī) 347
18.8.3 進(jìn)一步閱讀 347
18.8.4 例:一個(gè)簡(jiǎn)單的空對(duì)象(C#) 347
18.9 插件(Plugin) 348
18.9.1 運(yùn)行機(jī)制 349
18.9.2 使用時(shí)機(jī) 350
18.9.3 例:ID生成器(Java) 350
18.10 服務(wù)樁(Service Stub) 352
18.10.1 運(yùn)行機(jī)制 352
18.10.2 使用時(shí)機(jī) 353
18.10.3 例:銷售稅服務(wù)(Java) 353
18.11 記錄集(Record Set) 355
18.11.1 運(yùn)行機(jī)制 355
18.11.2 使用時(shí)機(jī) 356
參考文獻(xiàn) 359
企業(yè)應(yīng)用架構(gòu)模式內(nèi)容截圖
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版