Questions tagged [poeaa]

POEAA is short for Patterns of Enterprise Application Architecture. An influental book by Martin Fowler it covers a number of various Design Patterns pertaining to how to organize various layers of code. A large portion of the book covers techniques to deal with Object-Relational Impedance Mismatch.

POEAA is short for Patterns of Enterprise Application Architecture. An influental book by Martin Fowler it covers a number of various Design Patterns pertaining to how to organize various layers of code. A large portion of the book covers techniques to deal with Object-Relational Impedance Mismatch.

The catalog of patterns is available online at

This tag is used to relate questions about the Design Patterns in the book.

37 questions
79
votes
9 answers

Fowler's "Patterns of Enterprise Application Architecture" still relevant?

I'm thinking of buying Martin Fowler's "Patterns of Enterprise Application Architecture". From what I can see it seems like a great book, an architectural book with bias towards enterprise Java -- just what I need. However, in computer years, it is…
Jack Singleton
  • 901
  • 1
  • 6
  • 5
65
votes
6 answers

what is the difference between a view model and a data transfer object?

I'm basing this question on Fowler PoEAA. Given your familiarity with this text, aren't the ViewModels used in ASP.NET MVC the same as DTOs? Why or why not? Thank you.
mkelley33
  • 5,323
  • 10
  • 47
  • 71
23
votes
4 answers

Which pattern does Hibernate follow?

In his book "Patterns of Enterprise Application Architecture", Martin Fowler talks about persistence patterns which are commonly found in software development and particularly in relation to ORMs. Is there a pattern that Hibernate adheres to most…
yuos
  • 231
  • 1
  • 2
  • 3
11
votes
2 answers

Why does active record pattern not work with rich domain models?

I'm reading the architectural patterns chapter of POEAA, and Fowler says that "As the domain logic gets more complicated and you begin moving toward a rich Domain Model (116), the simple approach of an Active Record (160) starts to break down. The…
blacktie24
  • 4,985
  • 6
  • 41
  • 52
10
votes
3 answers

Is Repository pattern an overkill

I have been using Repository pattern (DDD and POEAA) for some time. However some of our team members have argued that it is just an extra layer of abstraction and unnecessary. I can seen some benefit in their arguments. Modern ORM solutions…
Tinku
  • 1,592
  • 1
  • 15
  • 27
8
votes
1 answer

How TableData gateway differs from Rowdata Gataway?.. need clarification

I have recently been reading about,TableData Gateway and RowData Gateway.According to "Patterns of Enterprise Application Architecture" RDG deals with one record at a time and TDG deals with a whole table.But both these patterns look very…
Alex
  • 326
  • 2
  • 10
8
votes
4 answers

Is It Incorrect to Make Domain Objects Aware of The Data Access Layer?

I am currently working on rewriting an application to use Data Mappers that completely abstract the database from the Domain layer. However, I am now wondering which is the better approach to handling relationships between Domain objects: Call the…
Noah Goodrich
  • 24,875
  • 14
  • 66
  • 96
7
votes
2 answers

in Zend, Why do We use DB Model class and Mapper class as two separate?

I am working on the zend project, I am referring on other zend project to create the new Zend Project.But I don't like to blindly follow that project without understanding. In the Zend Directory structure, In Model class there are mainly two type of…
Rajan Rawal
  • 6,171
  • 6
  • 40
  • 62
7
votes
6 answers

Table in DB for generating primary keys?

Do you ever use a separate table for "generating" artificial primary keys for DB (and why)? What I mean is to have a table with two columns, table name and current ID - with which you could get new "ID" for some table by simply locking the row with…
Denis Biondic
  • 7,943
  • 5
  • 48
  • 79
6
votes
1 answer

Applying Unit Of Work pattern

I have read in Patterns of Enterprise Application Architecture that a Unit Of Work should only be used in a single Session. So each session should have its only Unit Of Work. Can anybody tell me why I could not use one Unit Of Work for the whole…
Lieven Cardoen
  • 25,140
  • 52
  • 153
  • 244
6
votes
2 answers

Differences Between Query Object and Specification Patterns

What is the difference between the Query Object pattern proposed by Martin Fowler and the Specification pattern proposed by Eric Evans?
Ibrahim Najjar
  • 19,178
  • 4
  • 69
  • 95
4
votes
2 answers

Is is feasible to try to convert expression trees between business and data domains?

I have a repository layer that deals with LINQ to SQL autogenerated entities. These eventually get mapped into domain-friendly types on the surface. I'd now like to provide some more sophisticated querying capabilities for the client code, and…
Chris Farmer
  • 24,974
  • 34
  • 121
  • 164
4
votes
2 answers

Two Step View Pattern

Martin Fowler's PoEAA catalog is like a repository for Ruby gems and Rails modules, for example the ActiveRecord ORM from Rails is based on Fowler's ActiveRecord, and the DataMaper gem is based on the Data Mapper pattern. Are there any useful…
0x4a6f4672
  • 27,297
  • 17
  • 103
  • 140
4
votes
4 answers

Fowler Null Object Pattern: Why use inheritance?

Why does Fowler PoEAA p. 498 define the null-object pattern in the following way (sample shortened, language is c# but doesn't matter): public class Customer { public virtual string Name {get; set;} } public class NullCustomer : Customer,…
Johannes Rudolph
  • 35,298
  • 14
  • 114
  • 172
4
votes
3 answers

Categories of design patterns

The classic "Design Patterns: Elements of Reusable Object-Oriented Software" actually introduced most of us to the idea of design patterns. However these days I find a book such as "Patterns of Enterprise Application Architecture" (POEA) by Martin…
Ash
  • 60,973
  • 31
  • 151
  • 169
1
2 3