← Wróć do listy
2026-05-08

Wzorce projektowe w TypeScript — kompletne repozytorium

Wzorce projektowe w TypeScript — kompletne repozytorium

Wzorce projektowe to sprawdzone rozwiązania typowych problemów w architekturze oprogramowania. Chociaż mają już swoje lata, w świecie TypeScript i nowoczesnego frontendu są wciąż niezwykle istotne, pomagając budować skalowalne i łatwe w utrzymaniu aplikacje.

Stworzyłem repozytorium typescript-design-patterns, które służy jako praktyczny poligon doświadczalny dla wszystkich 23 wzorców zdefiniowanych przez Gang of Four (GoF).

Co znajdziesz w repozytorium?

Każdy wzorzec został zaimplementowany w sposób czytelny, z naciskiem na praktyczne zastosowanie w domenach takich jak e-commerce czy logistyka. Znajdziesz tam konkretne przykłady: zamówień, wysyłek, powiadomień i zarządzania produktami.

Struktura projektu

Repozytorium jest zorganizowane w przejrzysty sposób, dzieląc wzorce na trzy główne kategorie zgodnie z klasyfikacją GoF:

typescript-design-patterns/
├── creational/           # Wzorce kreacyjne (tworzenie obiektów)
│   ├── factory-method/
│   ├── abstract-factory/
│   ├── builder/
│   ├── prototype/
│   └── singleton/
├── structural/           # Wzorce strukturalne (składanie obiektów)
│   ├── adapter/
│   ├── composite/
│   ├── decorator/
│   ├── facade/
│   └── proxy/
└── behavioral/           # Wzorce behawioralne (interakcje między obiektami)
    ├── chain-of-responsibility/
    ├── command/
    ├── iterator/
    ├── mediator/
    ├── memento/
    ├── observer/
    ├── state/
    ├── strategy/
    └── template-method/

Podział wzorców

W projekcie znajdziesz implementacje następujących kategorii:

Wzorce Kreacyjne (Creational)

Skupiają się na mechanizmach tworzenia obiektów, starając się tworzyć je w sposób odpowiedni do sytuacji.

  • Factory Method - tworzenie obiektów bez określania ich dokładnej klasy.
  • Abstract Factory - tworzenie rodzin powiązanych obiektów.
  • Builder - etapowe budowanie złożonych obiektów.
  • Prototype - klonowanie istniejących obiektów.
  • Singleton - gwarancja jednej instancji klasy.

Wzorce Strukturalne (Structural)

Wyjaśniają, jak składać obiekty i klasy w większe struktury, zachowując przy tym elastyczność i wydajność.

  • Adapter - współpraca obiektów o niekompatybilnych interfejsach.
  • Composite - traktowanie pojedynczych obiektów i ich grup w ten sam sposób.
  • Decorator - dynamiczne dodawanie nowych zachowań do obiektów.
  • Facade - uproszczony interfejs do złożonego podsystemu.
  • Proxy - obiekt zastępczy kontrolujący dostęp do oryginału.

Wzorce Behawioralne (Behavioral)

Zajmują się algorytmami i przydzielaniem odpowiedzialności pomiędzy obiektami.

  • Chain of Responsibility - przekazywanie żądań wzdłuż łańcucha obsługujących.
  • Command - zamiana żądania w samodzielny obiekt.
  • Iterator - sekwencyjny dostęp do elementów kolekcji.
  • Mediator - ograniczenie bezpośrednich powiązań między komponentami.
  • Memento - przywracanie poprzedniego stanu obiektu.
  • Observer - subskrypcja i powiadamianie o zdarzeniach.
  • State - zmiana zachowania obiektu wraz ze zmianą jego stanu.
  • Strategy - wymienne algorytmy wewnątrz klasy.
  • Template Method - definicja szkieletu algorytmu w klasie bazowej.

Porównanie podobnych wzorców

Często wzorce wyglądają podobnie na pierwszy rzut oka. W README repozytorium przygotowałem zestawienie, które pomaga je rozróżnić:

Para wzorcówKluczowa różnica
State vs StrategyState zmienia się sam; Strategy jest wymieniana przez klienta.
Command vs StrategyCommand zamienia akcję w obiekt (undo, kolejka); Strategy podmienia algorytmy.
Decorator vs ProxyDecorator dodaje zachowanie (klient kontroluje stos); Proxy kontroluje dostęp.
Facade vs MediatorFacade: klient → podsystem; Mediator: dwukierunkowy, komponenty go znają.

Jak zacząć?

Repozytorium jest gotowe do uruchomienia. Każdy wzorzec posiada własny skrypt startowy:

npm install
npm run strategy
npm run observer
npm run factory-method

Pełny kod źródłowy wraz z opisami każdego wzorca znajdziesz na moim GitHubie:

👉 GitHub: typescript-design-patterns

Zachęcam do gwiazdkowania repozytorium i używania go jako ściągi w codziennej pracy!