Sunday, March 11, 2012

Decorator Pattern

Attaches additional responsibilities to an object dynamically. Decorators provides a flexible alternative to subclassing for extending functionality.

http://javapapers.com/design-patterns/decorator-pattern/

(abstract class) compontent{
m1();
m2();
}
concreteComponent{
m1();
m2();
}

(abstract) Decorator extends component{
m1();
m2();
}

you can use the decorator to decorate concreteComponent to concreteNewComponent with something additional

Design pattern book 95~98

Beverage beverage = new Espresso();

Beverage beverage2 = new DarkRoast();
beverage2 = new Mocha(beverage2);
beverage2 = new Mocha(beverage2); // double mocha
beverage2 = new Whip(beverage2); // with whip cream

No comments:

Post a Comment