Pages: 1 2 3 Next

Agile & Lean Management

Refactoring the Software Development Process

Browsing Posts in Design Patterns

The Search-Engine pattern is a simple, but powerful pattern. The user provides some sort of search phrase and the search engine returns all matches found in a data store. Next, the user browses the results to select the one she is looking for. When selected details are shown. This is exactly how Google (and other [...]

The DAO design pattern is traditionally associated with the Java Core J2EE Patterns, but this relatively simple pattern is equally applicable to our Microsoft .NET world. This time I am not talking hypothetical here, since recently I saw it being used extensively in real world .NET webportal code I was auditing. I guess it is [...]

State pattern is intended to provide a mechanism to allow an object to alter its behavior in response to internal state changes. To the client, it appears as though th object has changed its class. And last, but not least, my most favorite design pattern: the State pattern. Why it is my favourite pattern? I [...]

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 [...]

The Mediator pattern is intended to define an object that encapsulates how a set of objects interacts. Object do not communicate directly with eachother, but through a mediator. This reduces the dependencies between communicating objects. The client instantiates the communicating objects, so called colleagues, and a mediator through which they are communicating. Colleague c1 = [...]

The Flyweight pattern is intended to use sharing to support large numbers of fine-grained objects more efficiently and reduce resource usage. The Flyweight pattern is especially useful when there is a need of many, many similar objects. When I hear flyweight, I instantly think about characters in words, sentences, and stories. If a character is [...]

Pages: 1 2 3 Next