ts Decorator pattern
The solution for “ts Decorator pattern” can be found here. The following code will assist you in solving the problem.
/*Decorator
The Decorator pattern is a design pattern lets you dynamically change
the behavior of an object at run time
and it’s communly used in frameworks like Angular.
And you can implement the Decorator pattern in Typescript is very
easy and you can use the decorator module.
Again imagine you want to make a pizza and you want to make it
with tomato sauce, cheese and ham but you don’t want to repeat the
same steps for every pizza you make
First you need to make a pizza class:
*/
class Pizza {
public makePizza() {
console.log(‘Making a pizza…’);
}
}
// Then you make a decorator class that will decorate the pizza class:
class PizzaDecorator extends Pizza {
constructor(public pizza: Pizza) {
super();
}
public makePizza() {
this.pizza.makePizza();
}
}
// Then you make a concrete decorator class that extends the decorator class to add the cheese:
class CheeseDecorator extends PizzaDecorator {
constructor(pizza: Pizza) {
super(pizza);
}
public makePizza() {
super.makePizza();
console.log(‘Adding cheese…’);
}
}
// Then you make a concrete decorator class that extends the decorator
// class to add the ham:
class HamDecorator extends PizzaDecorator {
constructor(pizza: Pizza) {
super(pizza);
}
public makePizza() {
super.makePizza();
console.log(‘Adding ham…’);
}
}
// Then you make a concrete decorator class that extends the decorator
// class to add the mushrooms:
class MushroomDecorator extends PizzaDecorator {
constructor(pizza: Pizza) {
super(pizza);
}
public makePizza() {
super.makePizza();
console.log(‘Adding mushrooms…’);
}
}
// Then you make your pizza:
const pizza = new CheeseDecorator(new HamDecorator(new MushroomDecorator(new Pizza())));
pizza.makePizza();
// as you can see the decorator pattern uses nested classes and
// inheritance to add new functionality to an object.
More questions on [categories-list]
- tss from gene granges
- ixl ansers ixl ansers
- get coin prices node-binance
- how to setup netflix workflow worker
- spritesheets in pyqt spritesheets in pyqt
- cahokia mounds pictures cahokia mounds pictures cahokia mounds pictures
- python 2 decimal places how to get decimal part of a double in python set number of decimals python
- how to find nuber of tweets per day using python how to find nuber of tweets per day using python how to find nuber of tweets per day using python how to find nuber of tweets per day using python how to find nuber of tweets per day using python
- haskell get specific elements of a String
- vb net code snippets for storing password
- error TS2307: Cannot find module ‘@ngx-meta/core’.
- inline scripts encapsulated in tags