Decorator Pattern
The Decorator Pattern is
(also known as Wrapper, an alternative naming shared with the Adapter pattern) is a design pattern that allows behavior to be added to an individual object, either statically or dynamically, without affecting the behavior of other objects from the same class.
Decorator Pattern ensures
Modifying object functionality
var Product = function (name, brand, price) {
this.name = name;
this.brand = brand;
this.price = price;
}
Base Object
var ReturnedProduct = function (product, deliveryCost) {
this.product = product;
this.name = product.name;
this.brand = product.brand;
this.price = product.price;
this.deliveryCost = deliveryCost;
}
Decorator Object
Decorator Object Wrapping
Instance-creating with Base Class
var product = new Product ('shoes', 'adidas', 55, 5);
Instance-creating with Decorator Class
var decoratedProduct = new ReturnedProduct (product, 22);
A decorator example
var ReturnedProduct = function (product, deliveryCost) {
this.product = product;
this.name = product.name;
this.brand = product.brand;
this.price = product.price;
this.deliveryCost = deliveryCost;
}
var product = new Product ('shoes', 'adidas', 55, 5);
var decoratedProduct = new ReturnedProduct (product, 22);
Name of decorated product is
this.name = 'Shoes'
Brand of decorated product is
this.brand = 'Adidas'
Our new decorated object is initialized with
this.product = product
Price of decorated product is
this.price = 55
Delivery Cost of decorated product is
this.deliveryCost = 22
thanks
@hwclass
Copy of Decorator Pattern
By Barış SÖNMEZ
Copy of Decorator Pattern
- 335