企業(yè)應(yīng)用架構(gòu)模式 版權(quán)信息
- ISBN:9787111303930
- 條形碼:9787111303930 ; 978-7-111-30393-0
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
企業(yè)應(yīng)用架構(gòu)模式 內(nèi)容簡介
本書作者是當今面向?qū)ο筌浖_發(fā)的非常不錯,他在一組專家級合作者的幫助下,將40多種經(jīng)常出現(xiàn)的解決方案轉(zhuǎn)化成模式,*終寫成這本能夠應(yīng)用于任何一種企業(yè)應(yīng)用平臺的、關(guān)于解決方案的、不可或缺的手冊。本書獲得了2003年度美國軟件開發(fā)雜志圖書類的生產(chǎn)效率獎和讀者選擇獎。本書分為兩大部分。**部分是關(guān)于如何開發(fā)企業(yè)應(yīng)用的簡單介紹。第二部分是本書的主體,是關(guān)于模式的詳細參考手冊,每個模式都給出使用方法和實現(xiàn)信息,并配以詳細的Java代碼或C#代碼示例。此外,整本書中還用了大量UML圖來進一步闡明有關(guān)概念。本書是為致力于設(shè)計和構(gòu)建企業(yè)應(yīng)用的軟件架構(gòu)師、設(shè)計人員和編程人員而寫的,同時也可作為高等院校計算機專業(yè)及軟件學院相關(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 三個基本層次14
1.3 為各層選擇運行環(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 進一步閱讀38
第4章 Web表現(xiàn)層39
4.1 視圖模式41
4.2 輸入控制器模式43
4.3 進一步閱讀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 ACID51
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 進一步閱讀56
第6章 會話狀態(tài)57
6.1 無狀態(tài)的價值57
6.2 會話狀態(tài)58
6.3 存儲會話狀態(tài)的方法59
第7章 分布策略61
7.1 分布對象的誘惑61
7.2 遠程接口和本地接口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和J2EE70
8.4.2 .NET71
8.4.3 存儲過程71
8.4.4 Web Services72
8.5 其他分層方式72
第二部分 模 式
第9章 領(lǐng)域邏輯模式76
9.1 事務(wù)腳本(Transaction Script)76
9.1.1 運行機制76
9.1.2 使用時機77
9.1.3 收入確認問題78
9.1.4 例:收入確認(Java)78
9.2 領(lǐng)域模型(Domain Model)81
9.2.1 運行機制81
9.2.2 使用時機83
9.2.3 進一步閱讀83
9.2.4 例:收入確認(Java)84
9.3 表模塊(Table Module)87
9.3.1 運行機制88
9.3.2 使用時機90
9.3.3 例:基于表模塊的收入確認(C#)90
9.4 服務(wù)層(Service Layer)93
9.4.1 運行機制94
9.4.2 使用時機96
9.4.3 進一步閱讀96
9.4.4 例:收入確認(Java)96
第10章 數(shù)據(jù)源架構(gòu)模式101
10.1 表數(shù)據(jù)入口(Table Data Gateway)101
10.1.1 運行機制101
10.1.2 使用時機102
10.1.3 進一步閱讀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 運行機制107
10.2.2 使用時機108
10.2.3 例:人員記錄(Java)108
10.2.4 例:領(lǐng)域?qū)ο蟮臄?shù)據(jù)保持器(Java)111
10.3 活動記錄(Active Record)112
10.3.1 運行機制112
10.3.2 使用時機113
10.3.3 例:一個簡單的Person類(Java)113
10.4 數(shù)據(jù)映射器(Data Mapper)115
10.4.1 運行機制116
10.4.2 使用時機119
10.4.3 例:一個簡單的數(shù)據(jù)映射器(Java)119
10.4.4 例:分離查找方法(Java)123
10.4.5 例:創(chuàng)建一個空對象(Java)126
第11章 對象-關(guān)系行為模式129
11.1 工作單元(Unit of Work)129
11.1.1 運行機制129
11.1.2 使用時機133
11.1.3 例:使用對象注冊的工作單元
(Java)134
11.2 標識映射(Identity Map)137
11.2.1 運行機制137
11.2.2 使用時機139
11.2.3 例:標識映射中的方法(Java)139
11.3 延遲加載(Lazy Load)140
11.3.1 運作機制140
11.3.2 使用時機142
11.3.3 例:延遲初始化(Java)142
11.3.4 例:虛代理(Java)142
11.3.5 例:使用值保持器(Java)144
11.3.6 例:使用重影(C#)144
第12章 對象-關(guān)系結(jié)構(gòu)模式151
12.1 標識域(Identity Field)151
12.1.1 工作機制151
12.1.2 使用時機154
12.1.3 進一步閱讀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 運行機制167
12.2.2 使用時機169
12.2.3 例:單值引用(Java)169
12.2.4 例:多表查詢(Java)172
12.2.5 例:引用集合(C#)173
12.3 關(guān)聯(lián)表映射(Association Table
Mapping)175
12.3.1 運行機制176
12.3.2 使用時機176
12.3.3 例:雇員和技能(C#)177
12.3.4 例:使用直接的SQL(Java)179
12.3.5 例:用一次查詢查多個雇員(Java)182
12.4 依賴映射(Dependent Mapping)186
12.4.1 運行機制186
12.4.2 使用時機187
12.4.3 例:唱片和曲目(Java)188
12.5 嵌入值(Embedded Value)190
12.5.1 運行機制190
12.5.2 使用時機190
12.5.3 進一步閱讀191
12.5.4 例:簡單值對象(Java)191
12.6 序列化LOB(Serialized LOB)192
12.6.1 運行機制193
12.6.2 使用時機194
12.6.3 例:在XML中序列化一個
部門層級(Java)194
12.7 單表繼承(Single Table Inheritance)196
12.7.1 運行機制197
12.7.2 使用時機197
12.7.3 例:運動員的單表(C#)198
12.7.4 從數(shù)據(jù)庫中加載對象199
12.8 類表繼承(Class Table Inheritance)202
12.8.1 運行機制202
12.8.2 使用時機203
12.8.3 進一步閱讀203
12.8.4 例:運動員和他們的家屬(C#)203
12.9 具體表繼承(Concrete Table Inheritance)208
12.9.1 運行機制209
12.9.2 使用時機210
12.9.3 例:具體運動員(C#)210
12.10 繼承映射器(Inheritance Mappers)214
12.10.1 運行機制215
12.10.2 使用時機216
第13章 對象-關(guān)系元數(shù)據(jù)映射模式217
13.1 元數(shù)據(jù)映射(Metadata Mapping)217
13.1.1 運行機制217
13.1.2 使用時機218
13.1.3 例:使用元數(shù)據(jù)和反射(Java)219
13.2 查詢對象(Query Object)224
13.2.1 運行機制225
13.2.2 使用時機225
13.2.3 進一步閱讀226
13.2.4 例:簡單的查詢對象(Java)226
13.3 資源庫(Repository)228
13.3.1 運行機制229
13.3.2 使用時機230
13.3.3 進一步閱讀231
13.3.4 例:查找一個人所在的部門
(Java)231
13.3.5 例:資源庫交換策略(Java)231
第14章 Web表現(xiàn)模式233
14.1 模型-視圖-控制器
(Model View Controller)233
14.1.1 運行機制233
14.1.2 使用時機234
14.2 頁面控制器(Page Controller)235
14.2.1 運行機制235
14.2.2 使用時機236
14.2.3 例:Servlet控制器和JSP視圖
的簡單演示(Java)236
14.2.4 例:使用JSP充當處理程序(Java)238
14.2.5 例:代碼隱藏的頁面控制器(C#)241
14.3 前端控制器(Front Controller)243
14.3.1 運行機制244
14.3.2 使用時機245
14.3.3 進一步閱讀246
14.3.4 例:簡單的顯示(Java)246
14.4 模板視圖(Template View)248
14.4.1 運行機制249
14.4.2 使用時機251
14.4.3 例:分離的控制器,使用JSP
充當視圖(Java)252
14.4.4 例:ASP.NET服務(wù)器頁面(C#)253
14.5 轉(zhuǎn)換視圖(Transform View)256
14.5.1 運行機制256
14.5.2 使用時機257
14.5.3 例:簡單的轉(zhuǎn)換(Java)257
14.6 兩步視圖(Two Step View)259
14.6.1 運行機制259
14.6.2 使用時機260
......
企業(yè)應(yīng)用架構(gòu)模式 作者簡介
Martin Fowler,重量軟件開發(fā)大師,軟件開發(fā)“教父”,敏捷開發(fā)方法的創(chuàng)始人之一,在面向?qū)ο蠓治雠c設(shè)計、UML、模式、極限編程、重構(gòu)和DSL等領(lǐng)域都有非常深入的研究,并為軟件開發(fā)行業(yè)做出了很好貢獻。他樂于分享,撰寫了《企業(yè)應(yīng)用架構(gòu)模式》《重構(gòu):改善既有代碼的設(shè)計》《分析模式:可復用的對象模型》《UML精粹:標準對象建模語言簡明指南》、《領(lǐng)域特定語言》等在軟件開發(fā)領(lǐng)域頗負盛名的著作。
- >
經(jīng)典常談
- >
名家?guī)阕x魯迅:朝花夕拾
- >
朝聞道
- >
伯納黛特,你要去哪(2021新版)
- >
名家?guī)阕x魯迅:故事新編
- >
自卑與超越
- >
推拿
- >
【精裝繪本】畫給孩子的中國神話