Retired Content

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. Please see the patterns & practices guidance for the most current information.

patterns & practices Developer Center

Version 1.1.0

Complete List of patterns & practices

Pattlets are actual patterns to which this guide refers, but which it does not discuss in detail. For more information about why pattlets are used, see Chapter 2, "Organizing Patterns." The following table lists each pattlet mentioned in this guide and, where applicable, a reference to the original work that identified it.

Table A: Pattlets

Four-Tiered DistributionRefines Three-Tiered Distribution by separating the Web servers into their own tier.Microsoft patterns & practices
Abstract FactoryProvides an interface for creating families of dependent objects without specifying their concrete classes.Gamma95
AdapterConverts the interface of a class into another interface clients expect.Gamma95
Application ControllerIs a centralized point for handing screen navigation and the flow of an application.Fowler03
Application ServerAn execution environment for enterprise applications. For developers, application servers provide an integrated set of core technical services and high-level frameworks. For administrators, application servers provide integrated management, operations, and deployment services and tools.Microsoft patterns & practices
AssemblerAn instance of the Mapper [Fowler03] pattern Fowler's discussion of the Data Transfer Object (DTO) pattern talks about using an assembler object to populate the DTO with data. Fowler03
Bound Data ControlDynamically binds a presentation or view component directly to the data it is presenting.Microsoft patterns & practices
BridgeDecouples an abstraction from its implementation so that the two can vary independently.Gamma95
Command(s)Encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.Gamma95
DecoratorAttaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.Gamma95
FacadeProvides a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.Gamma95
GatewayAn object that encapsulates access to an external system or resource.Fowler03
Implementing Data Transfer Object in .NET with Serialized ObjectsDiscusses implementation of Data Transfer Object using a .NET serialized object.Microsoft patterns & practices
Layer SupertypeA type that acts as the supertype for all types in its layer.Fowler03
LayersStructures applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction.Buschmann96
MapperAn object that sets up a communication between two independent objects.Fowler03
MediatorDefines an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and lets you vary their interaction independently.Gamma95
MonoStateSimilar to Singleton but focuses on state rather than identity. Instead of controlling the instances of an object, MonoState ensures that there is only one shared state for all instances by declaring all data members static.Martin02
ObserverDefines a one-to-many dependency between objects so that when one objects changes state, all its dependents are notified and updated automatically.Gamma95
Naming ServiceA well-known repository that maps external names to specific objects.Mowbray97
Page Data CachingAn alternative to page caching that caches the data on which a page depends instead of caching the whole page (data plus content).Microsoft patterns & practices
Page Fragment CachingA refinement of Page Cache, where each page is composed of fragments and caching is controlled at the fragment level.Microsoft patterns & practices
Presentation-Abstraction-ControllerDefines a structure for interactive software systems in the form of a hierarchy of cooperating agents. Every agent is responsible for a specific aspect of the application's functionality and consists of three components: presentation, abstraction, and control. This subdivision separates the human-computer interaction aspects of the agent from its functional core and its communications with other agents.Buschmann96
ProxyProvides a surrogate or placeholder for another object to control access to it.Gamma95
Remote FacadeProvides a coarse-grained facade on fine-grained objects to improve efficiency over a network.Fowler03
Server FarmA set of servers that are fed requests from a load balancer.Microsoft patterns & practices
Special CaseA subclass that provides special behavior for particular cases.Fowler03
StrategyDefines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.Gamma95
Table Data GatewayAn object that acts as a Gateway to a database table. One instance handles all the rows in the table.Fowler03
Table ModuleA single instance that handles the business logic for all rows in a database table or view.Fowler03
Template MethodDefines the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.Gamma95
Utility ComponentA component that provides a commonly used low-level service such as persistence, logging, or lookup.Microsoft patterns & practices

patterns & practices Developer Center