Patterns in Software Development

Home - About » Computer Science - Programming
Computer Science
Research, Industry Work,
Community Service
Hillside Group, CHOOSE,
Stanford GSA
The Serious Side
Business School,
Learning Chinese
Humorous Takes
Switzerland, United States,
Software, Fun Photos
Travel Stories
Europe, United States, Asia
Living Places
Berlin (+ Gallery), Zürich
Boston, S.F. + Bay Area

Business Patterns

GOF-Style Patterns

  • Role Object. Adapt an object to different client's needs through transparently attached role objects, each one representing a role the object has to play in that client's context. The object manages its role set dynamically. By representing roles as individual objects, different contexts are kept separate and system configuration is simplified.
  • Event Notification. Manage update dependencies between objects by introducing an event notification mechanism. Make the state model and dependencies thereon explicit in class interfaces to achieve transparency.
  • Bureaucracy. Define a self-contained hierarchical structure which maintains its inner consistency, accepts interaction with clients on any level of the hierarchy, and scales for application design. This pattern combines the Observer, Chain of Responsibility, Mediator and Composite pattern to form a composite pattern.
  • Serializer (aka Atomizer). The Serializer pattern lets you efficiently stream objects into data structures of your choice as well as create objects from such data structures. The Serializer pattern can be used whenever objects are written to or read from flat files, relational database tables, network transport buffers, etc.
  • Product Trader (aka Virtual Constructor, Late Creation). Let clients create objects by naming an abstract superclass and by providing a specification. A Product Trader decouples the client from the product and thereby eases the adaptation, configuration and evolution of class hierarchies, frameworks and applications.
  • Dynamic Object Model (aka Adaptive Object Model). Allow a system to have new and changing object types without having to reprogram the system. By representing the object types as objects, they can be changed at configuration time or at runtime, making it easy to change and adapt the system to new requirements.

Pattern Languages

Copyright (©) 2007 Dirk Riehle. Some rights reserved. (Creative Commons License BY-NC-SA.) Original Web Location: