Wzór szablonu TS

/*
The Template Method pattern is a design pattern lets you define the 
skeleton of an algorithm in an operation, deferring some steps to subclasses.

For example 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 so instead you can define the steps 
in a template method and then you can use it to make different pizzas.

The Implementation will be like this
*/

class Pizza {
  public makePizza() {
    this.prepareDough();
    this.addSauce();
    this.addToppings();
    this.bake();
  }

  public prepareDough() {
    console.log('Preparing dough...');
  }

  public addSauce() {
    console.log('Adding sauce...');
  }

  public addToppings() {
    console.log('Adding toppings: cheese, ham, mushrooms');
  }

  public bake() {
    console.log('Bake for 25 minutes at 350');
  }
}
Puzzled Puffin