Patterns of Enterprise Application Architecture – notes


  • Gateway – represent access to some system or resource
  • Registry
  • Value object

Domain logic

  • Transaction script – simple function between request arrived and data persisted
  • Domain model – contains both: behaviour and data
  • Service layer – wraps model with secondary operations like security, logging, etc


  • Table Data gateway – one instance per table – for all rows
  • Row Data gateway – one instance per row
  • ActiveRecord – one per row or view, contains domain logic too
  • Data Mapper – maps between business objects and stored rows

Object relation behaviour

  • Unit of work – contains set of object affect by common operation or transaction to persist them correctly
  • Identity map – keeps any object loaded from database only once
  • Lazy load – loads a data when is really required/used


  • Identity field – uniq identifier of a row
  • Foreign key mapping
  • Association table mapping
  • Embedded value
  • Inheritance models – single table (all classes within the same table), class table (each has own table), concrete table (only concrete classes have own tables)
  • Query object
  • Repository

WEB representational

  • MVC
  • Page controller
  • Front controller
  • Template view
  • Transform view
  • Application controller – dedicated object that manages flow of application usage
  • Distribution patterns
  • Remote facade
  • Data Transfer Object

Concurrent access

  • Optimistic lock – versioning and conflicts handling
  • Pessimistic lock – prevents conflicts
  • Coarse-grained lock
  • Implicit lock

Session – client/server/database


About DmitryKrinitsyn
Software developer

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: