Pages: 1 2 Next

Agile & Lean Management

Refactoring the Software Development Process

Browsing Posts tagged Behavioral Patterns

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 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 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 iterator pattern provides a client with a way to access the elements of an aggregate object sequentially without having to know the underlying representation. The iterator is especially useful because it provides the client with a common interface so it doesn’t need to know anything about the underlying data structure. If you want to [...]

The Memento pattern provides you with the ability to restore an object to its previous state (undo by rollback). The Memento pattern can have different purposes, but above all is known as the Undo Pattern. If you are mentally in an object oriented mood you could ask yourself… Why on earth and above want they [...]

The Chain of Responsibility is intended to promote loose coupling between the sender of a request and its receiver by giving more than one object an opportunity to handle the request. The receiving objects are chained and pass the request along the chain until one of the objects handles it. What I like about this [...]

The Template Design Pattern is used to set up the outline or skeleton of an algorithm, leaving the details to specific implementations later. This way, subclasses can override parts of the algorithm without changing its overall structure. The template pattern is a relatively simple pattern. You can use it when you have some similar classes [...]

The Interpreter pattern is intended to provide you with a way to define representation of the grammar of a language whith an interpreter that uses the representation to interpret sentences in the language. Some applications provide support for built-in scripting and macro languages so users can describe operations they can perform in the application. If [...]

Pages: 1 2 Next