Patterns of Enterprise Application Architecture


  • Web Presentation Patterns
    • Page Controller
      An object that handles a request for a specific page or action on a Web site.
      • Template View
        Renders information into HTML by embedding markers in an HTML page.
        • Transform View
          A view that processes domain data element by element and transforms it into HTML.
          • Two Step View
            Turns domain data into HTML in two steps: first by forming some kind of logical page, then rendering the logical page into HTML.
            • Base Patterns
              • Gateway
                An object that encapsulates access to an external system or resource.
                • Mapper
                  An object that sets up a communication between two independent objects.
                  • Layer Supertype
                    A type that acts as the supertype for all types in its layer.
                    • Registry
                      A well-known object that other objects can use to find common objects and services.
                      • Value Object
                        A small simple object, like money or a date range, whose equality isn't based on identity.
                        • Money
                          Represents a monetary value.
                          • Special Case
                            A subclass that provides special behavior for particular cases.
                            • Plugin
                              Links classes during configuration rather than compilation.
                              • Service Stub
                                Removes dependence upon problematic services during testing. WSDL
                                • Record Set
                                  An in-memory representation of tabular data.
                                  • Domain Logic Patterns
                                    • Transaction Script
                                      Organizes business logic by procedures where each procedure handles a single request from the presentation.
                                      • Domain Model
                                        An object model of the domain that incorporates both behavior and data.
                                        • Table Module
                                          A single instance that handles the business logic for all rows in a database table or view.
                                          • Service Layer
                                            Defines an application's boundary with a layer of services that establishes a set of available operations and coordinates the application's response in each operation.
                                            • Data Source Architectural Patterns
                                              • Table Data Gateway
                                                An object that acts as a Gateway (466) to a database table. One instance handles all the rows in the table.
                                                • Row Data Gateway
                                                  An object that acts as a Gateway (466) to a single record in a data source. There is one instance per row.
                                                  • Active Record
                                                    An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.
                                                    • Data Mapper
                                                      A layer of Mappers (473) that moves data between objects and a database while keeping them independent of each other and the mapper itself.
                                                      • Object-Relational Behavioral Patterns
                                                        • Unit of Work
                                                          Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.
                                                          • Identity Map
                                                            Ensures that each object gets loaded only once by keeping every loaded object in a map. Looks up objects using the map when referring to them.
                                                            • Lazy Load
                                                              An object that doesn't contain all of the data you need but knows how to get it.

                                                              RepositoryQuery ObjectMetadata MappingObject-Relational Metadata Mapping PatternsInheritance MappersConcrete Table InheritanceClass Table InheritanceSingle Table InheritanceSerialized LOBEmbedded ValueDependent MappingAssociation Table MappingForeign Key MappingIdentity FieldObject-Relational Structural PatternsLazy LoadIdentity MapUnit of WorkObject-Relational Behavioral PatternsData MapperActive RecordRow Data GatewayTable Data GatewayData Source Architectural PatternsService LayerTable ModuleDomain ModelTransaction ScriptDomain Logic PatternsRecord SetService StubPluginSpecial CaseMoneyValue ObjectRegistrySeparated InterfaceLayer SupertypeMapperGatewayBase PatternsDatabase Session StateServer Session StateClient Session StateSession State PatternsImplicit LockCoarse-Grained LockPessimistic Offline LockOptimistic Offline LockOffline Concurrency PatternsData Transfer ObjectRemote FacadeDistribution PatternsApplication ControllerTwo Step ViewTransform ViewTemplate ViewFront ControllerPage ControllerModel View ControllerWeb Presentation PatternsPatterns of Enterprise Application Architecture