注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络信息系统企业应用架构模式:英文版

企业应用架构模式:英文版

企业应用架构模式:英文版

定 价:¥49.80

作 者: (美)Martin Fowler著
出版社: 中国电力出版社
丛编项: 原版风暴系列
标 签: 计算机/网络 软件工程/开发项目管理

ISBN: 9787508322018 出版时间: 2004-05-01 包装: 胶版纸
开本: 24cm 页数: 560 字数:  

内容简介

  ·JavaWorld评选的最佳Java图书·《重构》作者Martin Fowler最新作品·40余种模式覆盖企业应用架构常见问题·介绍每种模式的用法和实现并附有范例代码许多新技术的涌现使企业应用开发实践从中受益。多层面向对象平台,例如Java、.NET,已是十分普通的技术。这些新工具和新技术能够构建强有力的应用,但是实现它们并不容易。企业应用开发失败,经常是由于他们的开发人员不理解有经验的对象开发人员已经获取的架构方面的经验教训所造成的。本书是专门为那些缺乏经验的企业应用开发人员编写的。本书的作者,著名的面向对象设计师Martin Fowler发现如果不考虑Smalltalk、CORBA、Java和.NET在技术上的差异的话,相同的基础设计理念是能够用来解决架构方面的常见问题的。在特约专家组的帮助下,Martin将40余种可重现解决方案提炼成为模式。因此,这本不可或缺的解决方案手册适用于任何企业应用平台。本书实际上是将两本书合二为一了。本书的第一部分是开发企业应用的简短指南,你可以从中了解到本书所涵盖的内容。第二部分是本书的主体,是关于模式的详细讲解。每种模式都介绍了用法和实现信息,同时还附有相应的Java或C#代码范例。整本书中有大量的UML图,用以进一步解释有关概念。有了本书的帮助,在确定构建企业应用的架构和实施阶段所用模式时,你将具备必要的知识。本书要点:·将企业应用分层·组织业务逻辑的主要方法·对象和关系数据库之间的映射方法·使用MVC来组织Web表示·处理涉及多个事务的数据的并发·设计分布式对象接口

作者简介

  作者:MartinFowlerMartinFowler是一位独立咨询顾问,他运用对象技术解决企业问题已经超过十年。他的顾问领域包括健康管理、金融贸易,以及法人财务。他的客户包括Chrysler,Citibank,UKNationalHealthService,AndersenConsulting,NetscapeCommunications。此外Fowler也是objects、UML、patterns技术的一位合格讲师,他是《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

本目录推荐