企業應用架構模式 pdf下載

来源:https://www.cnblogs.com/liulangdemao/archive/2018/11/18/9979053.html
-Advertisement-
Play Games

從大學到現在,這本書也許我反反覆復地讀了不下十遍,可是這次終於有了勇氣把他標註為看過,因為直到今天我才自信自己真的理解了裡面所講的架構模式。 對於現在的互聯網時代,所有的開發思想都是強調簡潔,強調“敏捷”,甚至曾經流行一時的OOD竟然有被嫌棄的趨勢 《企業應用架構模式》作者是當今面向對象軟體開發的權 ...


從大學到現在,這本書也許我反反覆復地讀了不下十遍,可是這次終於有了勇氣把他標註為看過,因為直到今天我才自信自己真的理解了裡面所講的架構模式。 對於現在的互聯網時代,所有的開發思想都是強調簡潔,強調“敏捷”,甚至曾經流行一時的OOD竟然有被嫌棄的趨勢

需要學習的朋友可以通過網盤免費下載pdf版 (先點擊普通下載-----再選擇普通用戶就能免費下載了)http://putpan.com/fs/fyibfens4hu6b61d5/

《企業應用架構模式》作者是當今面向對象軟體開發的權威,他在一組專家級合作者的幫助下,將40多種經常出現的解決方案轉化成模式,最終寫成這本能夠應用於任何一種企業應用平臺的、關於解決方案的、不可或缺的手冊。《企業應用架構模式》獲得了2003年度美國軟體開發雜誌圖書類的生產效率獎和讀者選擇獎。《企業應用架構模式》分為兩大部分。第一部分是關於如何開發企業應用的簡單介紹。第二部分是《企業應用架構模式》的主體,是關於模式的詳細參考手冊,每個模式都給出使用方法和實現信息,並配以詳細的Java代碼或C#代碼示例。此外,整《企業應用架構模式》中還用了大量UML圖來進一步闡明有關概念。

《企業應用架構模式》是為致力於設計和構建企業應用的軟體架構師、設計人員和編程人員而寫的,同時也可作為高等院校電腦專業及軟體學院相關課程的參考教材。

作者簡介  · · · · · ·

Martin Fowler是一位獨立咨詢顧問,他運用對象技術解決企業問題已經超過十年。他的顧問領域包括健康管理、金融貿易,以及法人財務。他的客戶包括Chrysler,Citibank,UK National Health Service,AndersenConsulting,NetscapeCommunications。此外Fowler也是objects、UML、patterns技術的一位合格講師,他是《AnalysisPatterns》和《UML Distilled》的作者。

目錄  · · · · · ·

譯者序
前言
模式列表
引言 1
0.1 架構 1
0.2 企業應用 2
0.3 企業應用的種類 3
0.4 關於性能的考慮 4
0.5 模式 6
0.5.1 模式的結構 7
0.5.2 模式的局限性 9
第一部分 表述
第1章 分層 12
1.1 企業應用中層次的演化 13
1.2 三個基本層次 14
1.3 為各層選擇運行環境 15
第2章 組織領域邏輯 19
2.1 抉擇 22
2.2 服務層 23
第3章 映射到關係資料庫 25
.3.1 架構模式 25
3.2 行為問題 28
3.3 讀取數據 29
3.4 結構映射模式 30
3.4.1 關係的映射 30
3.4.2 繼承 33
3.5 建立映射 34
3.6 使用元數據 35
3.7 資料庫連接 36
3.8 其他問題 38
3.9 進一步閱讀 38
第4章 Web表現層 39
4.1 視圖模式 41
4.2 輸入控制器模式 43
4.3 進一步閱讀 43
第5章 併發 45
5.1 併發問題 45
5.2 執行語境 46
5.3 隔離與不變性 47
5.4 樂觀併發控制和悲觀併發控制 48
5.4.1 避免不一致讀 49
5.4.2 死鎖 49
5.5 事務 50
5.5.1 ACID 51
5.5.2 事務資源 51
5.5.3 減少事務隔離以提高靈活性 52
5.5.4 業務事務和系統事務 53
5.6 離線併發控制的模式 54
5.7 應用伺服器併發 55
5.8 進一步閱讀 56
第6章 會話狀態 57
6.1 無狀態的價值 57
6.2 會話狀態 58
6.3 存儲會話狀態的方法 59
第7章 分佈策略 61
7.1 分佈對象的誘惑 61
7.2 遠程介面和本地介面 62
7.3 必須使用分佈的情況 63
7.4 關於分佈邊界 64
7.5 分佈介面 64
第8章 通盤考慮 67
8.1 從領域層開始 67
8.2 深入到數據源層 68
8.2.1 事務腳本的數據源 68
8.2.2 表模塊的數據源 69
8.2.3 領域模型的數據源 69
8.3 表現層 69
8.4 一些關於具體技術的建議 70
8.4.1 Java和J2EE 70
8.4.2 .NET 71
8.4.3 存儲過程 71
8.4.4 Web Services 72
8.5 其他分層方式 72
第二部分 模 式
第9章 領域邏輯模式 76
9.1 事務腳本(Transaction Script) 76
9.1.1 運行機制 76
9.1.2 使用時機 77
9.1.3 收入確認問題 78
9.1.4 例:收入確認(Java) 78
9.2 領域模型(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 服務層(Service Layer) 93
9.4.1 運行機制 94
9.4.2 使用時機 96
9.4.3 進一步閱讀 96
9.4.4 例:收入確認(Java) 96
第10章 數據源架構模式 101
10.1 表數據入口(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數據集(C#) 104
10.2 行數據入口(Row Data Gateway) 106
10.2.1 運行機制 107
10.2.2 使用時機 108
10.2.3 例:人員記錄(Java) 108
10.2.4 例:領域對象的數據保持器(Java) 111
10.3 活動記錄(Active Record) 112
10.3.1 運行機制 112
10.3.2 使用時機 113
10.3.3 例:一個簡單的Person類(Java) 113
10.4 數據映射器(Data Mapper) 115
10.4.1 運行機制 116
10.4.2 使用時機 119
10.4.3 例:一個簡單的數據映射器(Java) 119
10.4.4 例:分離查找方法(Java) 123
10.4.5 例:創建一個空對象(Java) 126
第11章 對象-關係行為模式 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章 對象-關係結構模式 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 關聯表映射(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 從資料庫中載入對象 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章 對象-關係元數據映射模式 217
13.1 元數據映射(Metadata Mapping) 217
13.1.1 運行機制 217
13.1.2 使用時機 218
13.1.3 例:使用元數據和反射(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表現模式 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伺服器頁面(C#) 253
14.5 轉換視圖(Transform View) 256
14.5.1 運行機制 256
14.5.2 使用時機 257
14.5.3 例:簡單的轉換(Java) 257
14.6 兩步視圖(Two Step View) 259
14.6.1 運行機制 259
14.6.2 使用時機 260
14.6.3 例:兩階XSLT(XSLT) 264
14.6.4 例:JSP和定製標記(Java) 266
14.7 應用控制器(Application Controller) 269
14.7.1 運行機制 270
14.7.2 使用時機 271
14.7.3 進一步閱讀 271
14.7.4 例:狀態模型應用控制器(Java) 271
第15章 分佈模式 275
15.1 遠程外觀(Remote Facade) 275
15.1.1 運行機制 276
15.1.2 使用時機 278
15.1.3 例:使用Java語言的會話bean來作為遠程外觀(Java) 278
15.1.4 例:Web Service(C#) 281
15.2 數據傳輸對象(Data Transfer Object) 285
15.2.1 運行機制 285
15.2.2 使用時機 288
15.2.3 進一步閱讀 289
15.2.4 例:傳輸唱片信息(Java) 289
15.2.5 例:使用XML實現序列化(Java) 293
第16章 離線併發模式 295
16.1 樂觀離線鎖(Optimistic Offline Lock) 295
16.1.1 運行機制 296
16.1.2 使用時機 298
16.1.3 例:領域層與數據映射器(Java) 298
16.2 悲觀離線鎖(Pessimistic Offline Lock) 302
16.2.1 運行機制 303
16.2.2 使用時機 305
16.2.3 例:簡單鎖管理對象(Java) 305
16.3 粗粒度鎖(Coarse-Grained Lock) 310
16.3.1 運行機制 310
16.3.2 使用時機 312
16.3.3 例:共用的樂觀離線鎖(Java) 312
16.3.4 例:共用的悲觀離線鎖(Java) 316
16.3.5 例:根對象樂觀離線鎖(Java) 317
16.4 隱含鎖(Implicit Lock) 318
16.4.1 運行機制 318
16.4.2 使用時機 319
16.4.3 例:隱含的悲觀離線鎖(Java) 319
第17章 會話狀態模式 321
17.1 客戶會話狀態(Client Session State) 321
17.1.1 運行機制 321
17.1.2 使用時機 322
17.2 伺服器會話狀態(Server Session State) 322
17.2.1 運行機制 322
17.2.2 使用時機 324
17.3 資料庫會話狀態(Database Session State) 324
17.3.1 運行機制 324
17.3.2 使用時機 325
第18章 基本模式 327
18.1 入口(Gateway) 327
18.1.1 運行機制 327
18.1.2 使用時機 328
18.1.3 例:私有消息服務的入口(Java) 329
18.2 映射器(Mapper) 331
18.2.1 運行機制 332
18.2.2 使用時機 332
18.3 層超類型(Layer Supertype) 332
18.3.1 運行機制 332
18.3.2 使用時機 333
18.3.3 例:領域對象(Java) 333
18.4 分離介面(Separated Interface) 333
18.4.1 運行機制 334
18.4.2 使用時機 335
18.5 註冊表(Registry) 335
18.5.1 運行機制 336
18.5.2 使用時機 337
18.5.3 例:單子註冊表(Java) 337
18.5.4 例:線程安全的註冊表(Java) 338
18.6 值對象(Value Object) 339
18.6.1 運行機制 339
18.6.2 使用時機 340
18.7 貨幣(Money) 340
18.7.1 運行機制 341
18.7.2 使用時機 342
18.7.3 例:貨幣類(Java) 343
18.8 特殊情況(Special Case) 346
18.8.1 運行機制 347
18.8.2 使用時機 347
18.8.3 進一步閱讀 347
18.8.4 例:一個簡單的空對象(C#) 347
18.9 插件(Plugin) 348
18.9.1 運行機制 349
18.9.2 使用時機 350
18.9.3 例:ID生成器(Java) 350
18.10 服務樁(Service Stub) 352
18.10.1 運行機制 352
18.10.2 使用時機 353
18.10.3 例:銷售稅服務(Java) 353
18.11 記錄集(Record Set) 355
18.11.1 運行機制 355
18.11.2 使用時機 356

需要IT編程經典書籍資源大合集百度網盤鏈接的加qq 3083709327,另本人願意有償帶小白學python,幫助你答疑解惑,幫助你解決問題,指導你找工作,帶你入行。相信我有人帶著你的話可以少走彎路,成功入行拿高薪。北京地區周六日可上門指導,非北京線上指導。本人前每日優鮮後端工程師,土木專業自學python成功轉行,月薪5位數,性格安靜,誠信正直,想學的加qq。


另閑聊的也可加,就當交個朋友吧!





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上一篇文章中寫到用promise時應註意的問題,這一篇文章繼續介紹一個可以和axios庫配合的好工具: axios-mock-adapter。axios-mock-adapter可以用來攔截http請求,並模擬響應,使用起來也很簡單,比如你想模擬下伺服器返回個500錯誤,你可以這麼寫: 然後,在業務 ...
  • 最近在使用axios庫時遇到了個問題,後端介面報了500錯誤,但前端並未捕獲到。1. 調用介面的業務代碼如下: 很奇怪,代碼未按預期的結果運行。 2. 檢查下axios整體的配置 在axios整體配置的代碼中,過濾http code時,調用了filter401()、filter500(),但是這裡註 ...
  • 前端工程師,也叫Web前端開發工程師。web前端,前端從字面意思就很好理解,前端就是負責網站框架,首頁內容的設計。web前端是IT行業門檻相對較低的類別,很容易學洗。經過幾個月的培訓一般就可以上崗就業。 Web前端開發技術主要包括三個要素:HTML、CSS和JavaScript! 它要求前端開發工程 ...
  • 我估計有很多像我這樣非電腦專業的人進入到前端之後,總是在寫業務代碼,思考什麼什麼效果如何實現,導致很多基礎概念型的東西都理解得並不太清楚。經常一碰到群里討論的些筆試題什麼的,總覺得自己像是一個假前端似的,似懂非懂,就算會做也不能清楚的表述為什麼會是那樣的結果。總是自己安慰自己,反正正常項目很少這麼 ...
  • 1.父界面向子界面傳值 [1].父界面打開子界面: [2].子界面接收父界面的值 2.子界面向父界面傳值 [1].子界面向父界面傳值 [2].父界面接收子界面的值 ...
  • mock.js的文檔真的是無力吐槽,只說明API怎麼使用,完全不說明mock.js這個工具怎麼用,最有意思的是google的大部分文章複製官網的API, 不管是react還是Vue都是下麵的流程 本文主要記錄mock這個工具怎麼使用,api自己看 "文檔" 1. 安裝mock.js 1. 在項目裡面 ...
  • 朋友們,起風了,該“浪”起來了。 今天帶大家“浪”的主題是js的數組去重,總結了幾種方法如下,希望有所幫助,希望同行之間的交流,更希望有大神批評指點!!! 方法1:利用ES6的Set結合Array.from去重 方法二:利用ES5中的Index.Of()方法 方法三:利用數組中filter方法 方法 ...
  • 英文名:Singleton Pattern。英文原話:Ensure a class has only one instance,and provide a global point of access to it。 單例模式的主要作用是確保一個類只有一個實例。 一、實現方式 1.靜態內部類 這是最好 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...