Martin Fowler
Patterns of Enterprise Application Architecture
This book catalogs a collection of design patterns commonly used when writing business applications:
- Domain Logic
Transaction Script, Table Module, Domain Model, Service Layer
- Data Source
Table Data Gateway, Row Data Gateway, Active Record, Data Mapper
- Object-Relational Behavioral
Unit of Work, Identity Map, Lazy Load
- Object-Relational Structural
Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value, Serialized LOB, Single Table Inheritance, Class Table Inheritance, Concrete Table Inheritance, Inheritance Mappers
- Object-Relational Metadata Mapping
Metadata Mapping, Query Object, Repository
- Web Presentation
Model View Controller, Page Controller, Front Controller, Template View, Transform View, Two Step View, Application Controller
- Distribution
Remote Facade, Data Transfer Object
- Concurrence
Optimistic Offline Lock, Pessimistic Offline Lock, Coarse-Grained Lock
- Session State
Client Session State, Server Session State, Database Session State
- Miscellaneous
Gateway, Mapper, Layer Supertype, Separate Interface, Registry, Value Object, Money, Special Case, Plug-in, Service Stub, Record Set
Many of these patterns are available as frameworks and you do not need to implement them from scratch. As a side effect, the frameworks, such as O/R mapping and web presentation tools, have a tendency to hide their implementation techniques. The patterns cataloged and described by Martin Fowler will help you understand what happens behind the scene and and use this knowledge for optimizing, troubleshooting, and improving the design of your applications.
This book has something valuable for everybody. If you are new to the industry, you will learn about common recurring problems building enterprise applications and study techniques to solve them. If you used these patterns before, you will deepen your understanding of them.
Click here to find out more about this book. Happy reading!