-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java EE 設計模式解析與應用

( 簡體 字)
作者:[美]Murat Yener,Alex Theedom 著 類別:1. -> 程式設計 -> JAVA -> J2EE
譯者:張龍 譯
出版社:清華大學出版社Java EE 設計模式解析與應用 3dWoo書號: 43019
詢問書籍請說出此書號!

缺書
NT售價: 300

出版日:10/1/2015
頁數:299
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302415862
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書介紹知名的GoF一書最初所談到的經典設計模式1,然后探討如何在Java EE 6與7中實現它們。
每一章開始都會介紹每一種模式的傳統實現,然后展示如何通過Java EE特有的語義來實現它。
我們通過完整的代碼示例演示模式的傳統實現與Java EE實現,并通過實際的示例來說明模式的用法(或是誤用)。
我們介紹了每一種模式的優缺點及其用法。每一章都會通過一些練習來考察你對模式在Java EE中實現的理解。
本書讀者對象
本書面向各個層次的軟件開發者,涵蓋了關于模式的一切內容,從對其他圖書的引用,到基本的Java實現代碼,再到Java EE實現,最后通過實際示例介紹了如何以及何時該使用模式。本書還通過作者的切身經歷談到了關于模式的優秀以及糟糕的實踐。
對設計模式與Java EE有基本的了解可以幫助你更好地閱讀本書。
如果對模式與基本的Java實現已經具備了一些經驗,那么你可以直接跳到Java EE實現上來,這對于重溫設計模式知識是非常有幫助的。
本書涵蓋的內容
除了一些新模式外,本書還介紹了Java EE提供的作為標準實現一部分的所有經典設計模式,覆蓋范圍從Java EE 5到最新版的Java EE 7。
我們希望本書作為你的日常參考,能夠一直在你書架上占據一席之地。
本書的組織結構
每一章都重點關注一種設計模式。如果是經典模式,那么會在介紹完該模式后給出一個簡單的Java實現。每一章都會通過作者的親身經歷介紹關于這一章所重點關注的模式的優秀實踐與糟糕實踐。作者親身經歷之后是Java EE實現、示例與說明。每個代碼示例都可以獨立運行。每一章最后都會給出何時以及如何能高效使用模式的說明。
閱讀本書的前提條件
操作系統上裝有Java虛擬機(JVM)實現的任何現代計算機都可以運行書中的示例。出于簡化編碼的需求,你需要一個集成開發環境(IDE)。書中示例可以運行在任何流行的現代IDE上,如Eclipse、NetBeans及IntelliJ。
你需要Java Development Kit(JDK) for Java EE 7才能編譯和運行代碼示例,不過一些代碼示例也可以運行在舊版本的Java EE JDK上。
可使用任何Java EE 7兼容的應用服務器來運行示例。我們在Glassfish和TomEE上運行了全部代碼示例,前者是參考實現服務器,后者是流行的Java Web服務器Tomcat的Java EE版本。你可以使用任何服務器,不過由于Glassfish是參考實現,因此最好使用它。
要運行書中示例,你需要:
● 安裝有JDK for Java EE 7的操作系統,如Linux、Mac OS X或Windows
● Java EE 7 JDK
● 一個IDE,如Eclipse for Java EE Developers、NetBeans或IntelliJ
● 與Java EE 7兼容的應用服務器,如GlassFish或TomEE
示例源代碼可以從Wrox網站下載,網址是:www.wrox.com/ go/projavaeedesignpatterns。
本書的寫作動機
2011年11月,在一場關于項目應該使用Java EE還是Spring的爭論過后,我回到我的工位,寫下了一篇題為“Java EE 6 and the Ewoks”的博文2,這篇博文很快就傳開了。故事是根據電視節目How I Met Your Mother展開的。其中,紈?子弟Barney介紹了一個關于依娃族的理論,依娃族是一種類似于泰迪熊的生物,在《星際大戰》第6部中出現。粉絲對于依娃族的感受可謂是涇渭分明。
根據Barney所述,出生在1973年5月25日(那時《星球大戰》第3部:武士復仇剛剛上映)之前的人覺得依娃族非常幼稚,因此很討厭他們。不過,之后出生的人覺得依娃族非常可愛,因為他們總是會讓人想起泰迪熊。
回到我的故事上來。與客戶爭論關于Java EE與Spring的選擇問題讓我認識到這非常類似于依娃族理論。那些在項目中使用過J2EE 1.4(EJB 1.0/2.0/2.1)的人經歷過緩慢、低效的開發環境,以及占內存且Bug重重的IDE,服務器要花好幾分鐘才能啟動。其架構有些過于工程化,失敗的可能性很高,因此他們遷移到了Spring。無論使用何種版本,這些人都非常憎惡Java EE。Java EE 5的發布被低估了,并未給人留下深刻的印象。
Java EE再也不是J2EE。它現在更加開放,擁有龐大的社區,并吸收了Spring與Hibernate等框架的優秀理念來重新打磨自己。第1個重大變化就是其架構與編碼風格。Enterprise JavaBeans(EJB)采用了輕量級的Plain Old Java Object(POJO)模型,幾乎沒什么用處的實體Bean被Java Persistence API(JPA)所取代,REST與Web Service成為標準以及運行時的組成部分,注解取代了XML配置。不過,有些人會說Java EE 5并未對大型遷移做好準備,因為它不像Spring那樣成熟,開發環境的響應性也沒有那么好。使用Spring與Tomcat而非應用服務器與EJB和Java EE 5會極大提升開發效率,不過Java EE 5依然從頭開始,向企業級Java平臺的設計、使用與架構上邁出了重要一步。
Java EE 6與7延續了這一轉變,它們使用了與Java EE 5相同的原則和理念。Java EE是開發的一個很好的選擇,但爭論并未結束,這都要拜依娃族理論所賜。
某年炎熱的仲夏,我第一次接到Wrox/Wiley的電話,詢問我是否有興趣寫一本關于Spring的圖書。我在Spring開發方面頗具經驗,也非常有自信,不過市場上已經有太多關于Spring的圖書了,這使得再寫一本新書的價值變得沒那么大了。
此外,在版本6發布之前我就一直在使用Java EE。考慮到Spring與Java EE之間的爭論、我的博客以及伊娃族,我打算撰寫一本關于Java EE的圖書。不過,就像Spring一樣,我承認市場上已經有太多關于Java EE的優秀圖書了。我總覺得Java EE的一些屬性被低估了。Java EE提供了很多設計模式的不錯的內建實現,只需通過幾個簡單的注解即可。
GoF一書中所列出的經典模式被廣泛應用在各種語言、框架與平臺中。J2EE與Java EE也不例外。事實上,Java EE更進一步,為很多模式提供了默認實現,不過依然有很多頗具經驗的開發者低估了這些開箱即用的實現的價值。
我已經為這些模式寫了將近一年的博客,因此決定寫一本關于如何在Java EE中實現“經典”設計模式的圖書。在閱讀這本書時,我相信你一定會給予積極的反饋。
本書填平了Java EE平臺與GoF一書中所列出的經典設計模式之間的鴻溝,同時還談及了一些新模式。這樣,我們實際上并未撰寫另一本Java EE圖書,而是以Java EE的方式介紹了設計模式。
作為該平臺的忠實信徒,我撰寫博客、討論如何通過Java EE實現設計模式,從而擴展我的知識面與經驗,因此對于我個人來說,撰寫這樣一本書最棒的事情就是我有機會寫下我真的懷有熱情的一些東西。雖然我的博客提供了一些更簡單的示例,不過他們是在我需要時用作參考的,撰寫一本書則更加正式,格式也要更合規,同時遵循著相同的理念,這真是很棒的機會。
本書合著者與我所撰寫的每一章都有相同的目標:內容一定要是我們自己都喜歡看的。我們希望這本書能夠成為大家的參考書籍。
我們希望你能喜歡閱讀本書,就像我們喜歡撰寫本書一樣。
本書約定
為了幫助你從本書中獲得最大收益并跟上節奏,全書通篇使用了大量約定。






我們以如下兩種方式呈現代碼:
● 對于大部分代碼示例來說,我們使用等寬字體并且沒有突出顯示。
● 我們使用粗體強調當前上下文中特別重要的代碼,或是顯示出與之前代碼片段不同的代碼。
p2p.wrox.com
要與作者和同行討論,請加入p2p.wrox.com上的P2P論壇。這個論壇是一個基于Web的系統,便于你張貼與Wrox圖書相關的消息和相關技術,與其他讀者和技術用戶交流心得。該論壇提供了訂閱功能,當論壇上有新的消息時,它可以給你傳送感興趣的論題。Wrox作者、編輯和其他業界專家和讀者都會到這個論壇上來探討問題。
在http://p2p.wrox.com上,有許多不同的論壇,它們不僅有助于閱讀本書,還有助于開發自己的應用程序。要加入論壇,可以遵循下面的步驟:
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀使用協議,并單擊Agree按鈕。
(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,單擊Submit按鈕。
(4) 你會收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。




加入論壇后,就可以張貼新消息,響應其他用戶張貼的消息。可以隨時在Web上閱讀消息。如果要讓該網站給自己發送特定論壇中的消息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標。
關于使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁面上單擊FAQ鏈接。
勘誤表
盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果你在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。
請給wkservice@vip.163.com發電子郵件,我們就會檢查你的信息,如果是正確的,我們將在本書的后續版本中采用。
要在網站上找到本書的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書,然后在本書的細目頁面上,單擊Book Errata鏈接。在這個頁面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列表還包括每本書的勘誤表,網址是www.wrox.com/misc-pages/booklist.shtml。
源代碼
讀者在學習本書中的示例時,可以手動輸入所有的代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從本書合作站點http://www.wrox.com/go/projavaeedesignpatterns下載。
另外,也可以進入http://www.wrox.com/dynamic/books/download. aspx上的Wrox代碼下載主頁,查看本書和其他Wrox圖書的所有代碼。
還可訪問www.tupwk.com.cn/downpage,再輸入中文書名或中名ISBN,來下載源代碼。





每章首先介紹模式的基本Java實現(如果有),接著列出只能在符合Java EE JDK和Java EE標準的應用服務器上編譯和運行的模式的Java EE實現。
下載代碼后,只需用自己喜歡的解壓縮軟件對它進行解壓縮即可。
聯系作者
關于本書內容有任何問題或是其他相關事項都可以直接通過博客或是Twitter聯系兩位作者。
Murat Yener:
博客——devchronicles.com
Twitter——@yenerm
Alex Theedom:
博客——alextheedom.com
Twitter——@alextheedom
相關資料
1. Design Patterns: Elements of Reusable Object?Oriented Software(Addison?Wesley,1994):Erich Gamma、Richard Helm、Ralph Johnson與John Vlissides。
2. Java EE 6 and the Ewoks: http://www.devchronicles.com/2011/ 11/javaee6?and?ewoks.html。



內容簡介:

用Java EE設計模式解決實際問題
模式是Java開發者必需的設計工具。雖然Java EE提供了許多“經典GoF模式”的默認實現,但大多數富有經驗的開發者都低估了這些開箱即用的實現的價值。《Java EE設計模式解析與應用》一書分析每種模式的意圖,并通過各種可供選擇的示例代碼演示其實現,從而幫助廣大開發者改進代碼質量并提升架構設計水平。
本書首先呈現最常見的GoF模式,接著循序漸進地講解新模式;將重溫這些模式的經典實現并在示例代碼的引導下透徹分析Java EE特定的實現方式。為緊貼實際講解這些模式,作者還講述了自己親歷的成功和失敗項目,這些經歷有些十分有趣,有些令人沮喪,但都很好地闡釋了在實際中如何靈活運用這些原理。
主要內容
◆ 學習Java EE如何通過注解以及比J2EE更整潔的編程模型提供諸多模式的實現
◆ 用Java EE實現重要模式,包括門面、單例、工廠、裝飾、觀察者、依賴注入以及針對Web應用的MVC模式
◆ 掌握Java EE編碼方法,包括面向方面編程、異步編程以及REST風格的Web Service
◆ 學習模式運用不當的后果以及如何避免常見陷阱
◆ 學習避用模式的時機和原因,并給出替代方案
目錄:

第Ⅰ部分JavaEE設計模式介紹

第1章設計模式概覽 3

1.1何為設計模式 4

1.1.1如何檢測模式,為何需要模式 6

1.1.2現實世界中的模式 6

1.2設計模式基礎 8

1.3企業模式 8

1.3.1從Java到企業級Java 9

1.3.2企業Java模式的出現 10

1.3.3設計模式與企業模式 11

1.3.4當傳統設計模式遇到JavaEE 12

1.3.5當模式變成反模式 13

1.4小結 14

1.5相關資料 14

第2章JavaEE基礎 17

2.1多層架構 19

2.2客戶端層 20

2.3中間層 21

2.3.1Web層 21

2.3.2業務層 22

2.4EIS層 23

2.5JavaEE服務器 24

2.6JavaEEWebProfile 25

2.7JavaEE核心原則 25

2.8約定優于配置 26

2.9上下文與依賴注入 26

2.10攔截器 28

2.11小結 30

2.12本章練習 30

第Ⅱ部分實現JavaEE設計模式

第3章門面模式 33

3.1何為門面 34

3.2使用普通代碼實現門面模式 36

3.3使用JavaEE實現門面模式 38

3.3.1使用無狀態Bean實現門面 38

3.3.2使用有狀態Bean實現門面 41

3.4何時以及何處該使用門面模式 42

3.5小結 43

3.6本章練習 43

3.7相關資料 43

第4章單例模式 45

4.1何為單例? 46

4.1.1單例模式類圖 47

4.1.2使用普通代碼實現單例模式 48

4.2使用JavaEE實現單例模式 53

4.2.1單例Bean 53

4.2.2在啟動時使用單例 54

4.2.3確定啟動順序 56

4.2.4管理并發 59

4.3何處以及何時該使用單例模式 63

4.4小結 63

4.5本章練習 64

4.6相關資料 65

第5章依賴注入與CDI 67

5.1何為依賴注入? 68

5.2使用普通代碼實現DI 69

5.3使用JavaEE實現DI 73

5.3.1@Named注解 75

5.3.2上下文與依賴注入(CDI) 76

5.3.3CDI與EJB 77

5.3.4CDIBean 77

5.3.5@Inject注解 79

5.3.6上下文與作用域 79

5.3.7命名與EL 80

5.3.8用于BackingJSF的CDIBean 81

5.3.9限定符 81

5.3.10Alternatives 82

5.3.11Stereotypes 83

5.3.12通過CDI實現的其他模式 84

5.4小結 84

5.5本章練習 85

5.6相關資料 85

第6章工廠模式 87

6.1何為工廠? 88

6.2工廠方法 89

6.3抽象工廠 94

6.4使用JavaEE實現工廠模式 96

6.5何處以及何時該使用工廠模式 110

6.6小結 111

6.7本章練習 111

6.8相關資料 111

第7章裝飾模式 113

7.1何為裝飾器? 114

7.2使用普通代碼實現裝飾模式 116

7.3使用JavaEE實現裝飾模式 121

7.4何處以及何時該使用裝飾模式 129

7.5小結 130

7.6本章練習 130

7.7相關資料 131

第8章面向方面編程(攔截器) 133

8.1何為面向方面編程? 134

8.2使用普通代碼實現AOP 137

8.3JavaEE中的方面——攔截器 140

8.3.1攔截器生命周期 145

8.3.2默認級別的攔截器 146

8.3.3攔截器順序 147

8.3.4CDI攔截器 150

8.4何處以及何時該使用攔截器 153

8.5小結 154

8.6相關資料 155

第9章異步 157

9.1何為異步編程 158

9.2使用普通代碼實現異步模式 161

9.3JavaEE中的異步編程 164

9.3.1異步Bean 164

9.3.2異步Servlet 167

9.4何處以及何時該使用異步編程 172

9.5小結 174

9.6本章練習 174

9.7相關資料 175

第10章定時器服務 177

10.1何為定時器服務 178

10.2使用JavaEE實現定時器 181

10.2.1自動化定時器 181

10.2.2編程式定時器 183

10.2.3定時器表達式 187

10.2.4事務 190

10.3小結 191

10.4本章練習 192

10.5相關資料 192

第11章觀察者模式 193

11.1何為觀察者? 194

11.1.1說明 195

11.1.2觀察者類圖 197

11.2使用普通代碼實現觀察者模式 197

11.3使用JavaEE實現觀察者模式 200

11.4何處以及何時該使用觀察者模式 209

11.5小結 210

11.6本章練習 211

11.7相關資料 211

第12章數據訪問模式 213

12.1何為數據訪問模式? 214

12.2數據訪問模式概覽 216

12.2.1數據傳輸對象模式 216

12.2.2Java持久化架構API與對象關系映射 217

12.3使用JavaEE實現數據訪問模式 218

12.4何處以及何時該使用數據訪問模式 227

12.5小結 227

12.6本章練習 228

12.7相關資料 228

第13章REST風格的WebService 229

13.1何為REST? 230

13.2REST的6個約束 232

13.2.1客戶端-服務器 233

13.2.2統一接口 233

13.2.3無狀態 233

13.2.4可緩存 233

13.2.5分層系統 234

13.2.6按需編碼 234

13.3RESTAPI的理查森能力成熟度模型 234

13.3.1級別0:POX(PlainOldXML)沼澤 235

13.3.2級別1:資源 235

13.3.3級別2:HTTP動詞 235

13.3.4級別3:超媒體控件 235

13.4設計REST風格的API 235

13.4.1資源命名 236

13.4.2名詞而非動詞 237

13.4.3自說明 237

13.4.4復數而非單數 237

13.4.5HTTP方法 238

13.4.6GET 238

13.4.7POST 239

13.4.8PUT 239

13.4.9DELETE 240

13.5REST實戰 240

13.5.1users名詞 240

13.5.2topics名詞與posts名詞 242

13.6使用JavaEE實現REST 244

13.7HATEOAS 249

13.8何處以及何時該使用REST 253

13.9小結 253

13.10本章練習 254

13.11相關資料 254

第14章模型、視圖與控制器模式 255

14.1何為MVC設計模式? 256

14.2使用普通代碼實現MVC模式 260

14.3使用JavaEE實現MVC模式 265

14.4FacesServlet 265

14.5使用FacesServlet實現MVC 266

14.6何處以及何時該使用MVC模式 269

14.7小結 269

14.8本章練習 270

14.9相關資料 270

第15章JavaEE中的其他模式 271

15.1何為WebSockets? 272

15.2何為面向消息的中間件 275

15.3何為微服務架構? 277

15.3.1單塊架構 278

15.3.2可伸縮性 279

15.3.3分解為服務 280

15.3.4微服務的好處 281

15.3.5天下沒有免費的午餐 282

15.3.6結論 283

15.4一些反模式 284

15.4.1超級類 284

15.4.2面條架構 284

15.4.3哥倫布先生 285

15.4.4利益之交 285

15.4.5前沿技術 286

15.4.6輔助類 286

15.5相關資料 287

第Ⅲ部分總結

第16章設計模式:好處、壞處與丑陋之處 291

16.1好處:通往成功之路的模式 292

16.2壞處:模式的過度使用與濫用 294

16.3丑陋之處 296

16.4小結 298

16.5相關資料 298

序: