Zafixuje skelet postupu a nechá podtriedam doplniť jednotlivé kroky.
class Report { // The skeleton of the procedure. The order is fixed and a child cannot change it. create(data) { this.header(); this.body(data); this.footer(); } header() { // the same for everyone } footer() { // the same for everyone } body(data) { throw new Error('abstraktná metóda'); }} class PdfReport extends Report { body(data) { // typesets the table into PDF }} class HtmlReport extends Report { body(data) { // writes the table out as HTML }} new PdfReport().create(data);new HtmlReport().create(data);