Design Pattern

Structural Patterns are design patterns, which describe the best possible ways to combine the objects and classes forming a larger complex structure in an easy manner. It deals with the objects delegating responsibilities to other objects. It is a simple way to design and realize relationships between the entities. 

In this article, we are discussing Decorator, Façade and Flyweight Design Patterns.

I. Decorator Design Pattern

This section deeply discusses the Decorator design pattern, a kind of structural pattern.

In object-oriented programming, the decorator pattern allows the developers to add new behaviors to an existing functionality of an object, dynamically.

The decorator pattern can be used whenever there is a need to add some additional functionality to an object or to the group of objects. It provides a flexible alternative for subclassing to extend the functionality. This pattern is also known as the “wrapper” design pattern as it works by wrapping around the original object to get a new “decorator” object. Wrapping is typically achieved by passing the original object as a parameter to the
constructor of the decorator, and then it is ready to implement the new functionality.

Decorators are very much similar to subclassing feature of an object-oriented programming. The only difference is that, Subclassing adds behavior at compile time where as a decoratorprovides a new behavior at the runtime.

The UML diagram for this pattern in our scenario looks something like this:
  This UML diagram illustrates that the Decorators should be abstract classes and the concrete implementation should be derived from them according to the requirement.

A decorator can be added or removed from an object without realizing the client about any changed occurred. It is a good idea to use a Decorator in a situation where you want to change the behavior of an object repeatedly (by adding and subtracting functionality) during runtime.

This dynamic behavior modification capability of the decorators are useful for adapting objects to new functionality without re-writing the original object’s code. 

The given design pattern shows the implementation code of the decorated class.In java, the code for a decorator class would be something like this:

 Nov 2007 | Java Jazz Up |37
View All Topics
All Pages of this Issue
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,

, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 , 54, 55, 56, 57,

, 59, 60, 61, 62, 63 , 64, 65 , 66 , 67 , 68 , 69   Download PDF