Necháva podtriedy rozhodnúť, ktorý konkrétny objekt sa vytvorí.
class Exporter { export(data) { const doc = this.createDocument(); return doc.render(data); } createDocument() { throw new Error('Podtrieda musí určiť dokument'); }} class PdfExporter extends Exporter { createDocument() { return new PdfDocument(); }} class CsvExporter extends Exporter { createDocument() { return new CsvDocument(); }} new PdfExporter().export(rows);new CsvExporter().export(rows);