Agile & Lean Software Development Management

deep thoughts on doing real work

Browsing Posts published in June, 2009

The Strategy pattern is intended to provide you with a means to define a family of algorithms, encapsulate each one as an object, and make them interchangeable. This is one of my favorite design patterns, because it provides you a way to encapsulate a strategy. This comes in very handy when you suspect that there [...]

The Prototype pattern is a simple pattern intended to provide you with a way to dynamically select which object to instantiate, and to return a clone of a prototypical object. This is a relatively simple pattern. You create a prototypic reusable object and use it as a base for other objects. This pattern comes in [...]

The Visitor pattern uses an external class to act on data in other classes. This is a useful approach to you when you have a polymorphic operation that cannot reside in the class hierarchy. Visitor is also a useful way to extend the behavior of a class hierarchy without the need to alter existing classes [...]

The Observer pattern is intended to provide you with a means to present data in several different forms at once so that when one object changes state, all its dependents are notified and updated automatically. The Observer pattern can be found everywhere. Mostly it is used when you have more than one view on the [...]

The Builder pattern is used to separate the construction of complex objects from their representation so the construction process can be used to create different representations. The construction logic is isolated from the actual steps used to create the complex object. What I like about the builder pattern is that it cloacks the actual construction [...]