注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)信息系統(tǒng)企業(yè)應(yīng)用架構(gòu)模式:英文版

企業(yè)應(yīng)用架構(gòu)模式:英文版

企業(yè)應(yīng)用架構(gòu)模式:英文版

定 價:¥49.80

作 者: (美)Martin Fowler著
出版社: 中國電力出版社
叢編項: 原版風暴系列
標 簽: 計算機/網(wǎng)絡(luò) 軟件工程/開發(fā)項目管理

ISBN: 9787508322018 出版時間: 2004-05-01 包裝: 膠版紙
開本: 24cm 頁數(shù): 560 字數(shù):  

內(nèi)容簡介

  ·JavaWorld評選的最佳Java圖書·《重構(gòu)》作者Martin Fowler最新作品·40余種模式覆蓋企業(yè)應(yīng)用架構(gòu)常見問題·介紹每種模式的用法和實現(xiàn)并附有范例代碼許多新技術(shù)的涌現(xiàn)使企業(yè)應(yīng)用開發(fā)實踐從中受益。多層面向?qū)ο笃脚_,例如Java、.NET,已是十分普通的技術(shù)。這些新工具和新技術(shù)能夠構(gòu)建強有力的應(yīng)用,但是實現(xiàn)它們并不容易。企業(yè)應(yīng)用開發(fā)失敗,經(jīng)常是由于他們的開發(fā)人員不理解有經(jīng)驗的對象開發(fā)人員已經(jīng)獲取的架構(gòu)方面的經(jīng)驗教訓所造成的。本書是專門為那些缺乏經(jīng)驗的企業(yè)應(yīng)用開發(fā)人員編寫的。本書的作者,著名的面向?qū)ο笤O(shè)計師Martin Fowler發(fā)現(xiàn)如果不考慮Smalltalk、CORBA、Java和.NET在技術(shù)上的差異的話,相同的基礎(chǔ)設(shè)計理念是能夠用來解決架構(gòu)方面的常見問題的。在特約專家組的幫助下,Martin將40余種可重現(xiàn)解決方案提煉成為模式。因此,這本不可或缺的解決方案手冊適用于任何企業(yè)應(yīng)用平臺。本書實際上是將兩本書合二為一了。本書的第一部分是開發(fā)企業(yè)應(yīng)用的簡短指南,你可以從中了解到本書所涵蓋的內(nèi)容。第二部分是本書的主體,是關(guān)于模式的詳細講解。每種模式都介紹了用法和實現(xiàn)信息,同時還附有相應(yīng)的Java或C#代碼范例。整本書中有大量的UML圖,用以進一步解釋有關(guān)概念。有了本書的幫助,在確定構(gòu)建企業(yè)應(yīng)用的架構(gòu)和實施階段所用模式時,你將具備必要的知識。本書要點:·將企業(yè)應(yīng)用分層·組織業(yè)務(wù)邏輯的主要方法·對象和關(guān)系數(shù)據(jù)庫之間的映射方法·使用MVC來組織Web表示·處理涉及多個事務(wù)的數(shù)據(jù)的并發(fā)·設(shè)計分布式對象接口

作者簡介

  作者:MartinFowlerMartinFowler是一位獨立咨詢顧問,他運用對象技術(shù)解決企業(yè)問題已經(jīng)超過十年。他的顧問領(lǐng)域包括健康管理、金融貿(mào)易,以及法人財務(wù)。他的客戶包括Chrysler,Citibank,UKNationalHealthService,AndersenConsulting,NetscapeCommunications。此外Fowler也是objects、UML、patterns技術(shù)的一位合格講師,他是《AnalysisPatterns》和《UMLDistilled》的作者。UML精粹:標準對象建模語言簡明指南(第3版)(英文影印版)>>更多作品

圖書目錄

Preface. 
Who This Book Is For.
Acknowledgements.
Colophon.
Introduction. 
Architecture.
Enterprise Applications.
Kinds of Enterprise Application.
Thinking About Performance.
Patterns.
The Structure of the Patterns.
Limitations of These Patterns.
I. THE NARRATIVES. 
1. Layering. 
The Evolution of Layers in Enterprise Applications.
The Three Principal Layers.
Choosing Where to Run Your Layers.
2. Organizing Domain Logic. 
Making a Choice.
Service Layer.
3. Mapping to Relational Databases. 
Architectural Patterns.
The Behavioral Problem.
Reading in Data
Structural Mapping Patterns.
Mapping Relationships.
Inheritance.
Building the Mapping.
Double Mapping.
Using Metadata.
Database Connections.
Some Miscellaneous Points.
Further Reading.
4. Web Presentation. 
View Patterns.
Input Controller Patterns.
Further Reading.
5. Concurrency (by Martin Fowler and David Rice). 
Concurrency Problems.
Execution Contexts.
Isolation and Immutability.
Optimistic and Pessimistic Concurrency Control.
Preventing Inconsistent Reads.
Deadlocks.
Transactions.
ACID.
Transactional Resources.
Reducing Transaction Isolation for Liveness.
Business and System Transactions.
Patterns for Offline Concurrency Control.
Application Server Concurrency.
Further Reading.
6. Session State. 
The Value of Statelessness.
Session State.
Ways to Store Session State.
7. Distribution Strategies. 
The Allure of Distributed Objects.
Remote and Local Interfaces.
Where You Have to Distribute.
Working with the Distribution Boundary.
Interfaces for Distribution.
8. Putting it all Together. 
Starting With the Domain Layer.
Down to the Data Source.
Data Source for Transaction Script. 
Data Source Table Module (125). 
Data Source for Domain Model (116). 
The Presentation Layer.
Some Technology-Specific Advice.
Java and J2EE.
.NET.
Stored Procedures.
Web Services.
Other Layering Schemes.
II. THE PATTERNS. 
9. Domain Logic Patterns. 
Transaction Script.
How It Works.
When to Use It.
The Revenue Recognition Problem.
Example: Revenue Recognition (Java).
Domain Model.
How It Works.
When to Use It.
Further Reading.
Example: Revenue Recognition (Java).
Table Module.
How It Works.
When to Use It.
Example: Revenue Recognition with a Table Module (C#).
Service Layer(by Randy Stafford).
How It Works.
When to Use It.
Further Reading.
Example: Revenue Recognition (Java).
10. Data Source Architectural Patterns. 
Table Data Gateway.
How It Works.
When to Use It.
Further Reading.
Example: Person Gateway (C#).
Example: Using ADO.NET Data Sets (C#).
Row Data Gateway.
How It Works.
When to Use It.
Example: A Person Record (Java).
Example: A Data Holder for a Domain Object (Java).
Active Record.
How It Works.
When to Use It.
Example: A Simple Person (Java).
Data Mapper.
How It Works.
When to Use It.
Example: A Simple Database Mapper (Java).
Example: Separating the Finders (Java).
Example: Creating an Empty Object (Java).
11. Object-Relational Behavioral Patterns. 
Unit of Work.
How It Works.
When to Use It.
Example: Unit of Work with Object Registration (Java) (by David Rice).
Identity Map.
How It Works.
When to Use It.
Example: Methods for an Identity Map (Java).
Lazy Load.
How It Works.
When to Use It.
Example: Lazy Initialization (Java).
Example: Virtual Proxy (Java).
Example: Using a Value Holder (Java).
Example: Using Ghosts (C#).
12. Object-Relational Structural Patterns. 
Identity Field.
How It Works.
When to Use It.
Further Reading.
Example: Integral Key (C#).
Example: Using a Key Table (Java).
Example: Using a Compound Key (Java).
Foreign Key Mapping.
How It Works.
When to Use It.
Example: Single-Valued Reference (Java).
Example: Multitable Find (Java).
Example: Collection of References (C#).
Association Table Mapping.
How It Works.
When to Use It.
Example: Employees and Skills (C#).
Example: Using Direct SQL (Java).
Example: Using a Single Query for Multiple Employees (Java) (by Matt Foemmel and Martin Fowler).
Dependent Mapping.

How It Works.

When to Use It.

Example: Albums and Tracks (Java).

Embedded Value.

How It Works.

When to Use It.

Further Reading.

Example: Simple Value Object (Java).

Serialized LOB.

How It Works.

When to Use It.

Example: Serializing a Department Hierarchy in XML (Java).

Single Table Inheritance.

How It Works.

When to Use It.

Example: A Single Table for Players (C#).

Loading an Object from the Database.

Class Table Inheritance.

How It Works.

When to Use It.

Further Reading.

Example: Players and Their Kin (C#).

Concrete Table Inheritance.

How It Works.

When to Use It.

Example: Concrete Players (C#).

Inheritance Mappers.

How It Works.

When to Use It.
13. Object-Relational Metadata Mapping Patterns. 

Metadata Mapping.

How It Works.

When to Use It.

Example: Using Metadata and Reflection (Java).

Query Object.

How It Works.

When to Use It.

Further Reading.

Example: A Simple Query Object (Java).

Repository (by Edward Hieatt and Rob Mee).

How It Works.

When to Use It.

Further Reading.

Example: Finding a Person's Dependents (Java).

Example: Swapping Repository Strategies (Java).
14. Web Presentation Patterns. 

Model View Controller.

How It Works.

When to Use It.

Page Controller.

How It Works.

When to Use It.

Example: Simple Display with a Servlet Controller and a JSP View (Java).

Example: Using a JSP as a Handler (Java).

Example: Page Handler with a Code Behind (C#).

Front Controller.

How It Works.

When to Use It.

Further Reading.

Example: Simple Display (Java).

Template View.

How It Works.

When to Use It.

Example: Using a JSP as a View with a Separate Controller (Java).

Example: ASP.NET Server Page (C#).

Transform View.

How It Works.

When to Use It.

Example: Simple Transform (Java).

Two Step View.

How It Works.

When to Use It.

Example: Two Stage XSLT (XSLT).

Example: JSP and Custom Tags (Java).

Application Controller.

How It Works.

When to Use It.

Further Reading.

Example: State Model Application Controller (Java).
15. Distribution Patterns. 

Remote Facade.

How It Works.

When to Use It.

Example: Using a Java Session Bean as a Remote Facade (Java).

Example: Web Service (C#).

Data Transfer Object.

How It Works.

When to Use It.

Further Reading.

Example: Transferring Information about Albums (Java).

Example: Serializing Using XML (Java).
16. Offline Concurrency Patterns. 

Optimistic Offline Lock (by David Rice).

How It Works.

When to Use It.

Example: Domain Layer with Data Mappers (165) (Java).

Pessimistic Offline Lock (by David Rice).

How It Works.

When to Use It.

Example: Simple Lock Manager (Java).

Coarse-Grained Lock (by David Rice and Matt Foemmel).

How It Works.

When to Use It.

Example: Shared Optimistic Offline Lock (416) (Java).

Example: Shared Pessimistic Offline Lock (426) (Java).

Example: Root Optimistic Offline Lock (416) (Java).

Implicit Lock (by David Rice).

How It Works.

When to Use It.

Example: Implicit Pessimistic Offline Lock (426) (Java).
17. Session State Patterns. 

Client Session State.

How It Works.

When to Use It.

Server Session State.

How It Works.

When to Use It.

Database Session State.

How It Works.

When to Use It.
18. Base Patterns. 

Gateway.

How It Works.

When to Use It.

Example: A Gateway to a Proprietary Messaging Service (Java).

Mapper.

How It Works.

When to Use It.

Layer Supertype.

How It Works.

When to Use It.

Example: Domain Object (Java).

Separated Interface.

How It Works.

When to Use It.

Registry.

How It Works.

When to Use It.

Example: A Singleton Registry (Java).

Example: Thread-Safe Registry (Java) (by Matt Foemmel and Martin Fowler).

Value Object.

How It Works.

When to Use It.

Money.

How It Works.

When to Use It.

Example: A Money Class (Java) (by Matt Foemmel and Martin Fowler).

Special Case.

How It Works.

When to Use It.

Further Reading.

Example: A Simple Null Object (C#).

Plugin (by David Rice and Matt Foemmel).

How It Works.

When to Use It.

Example: An Id Generator (Java).

Service Stub (by David Rice).

How It Works.

When to Use It.

Example: Sales Tax Service (Java).
Record Set.
How It Works.
When to Use It.
References

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號