1. Wzorce kreacyjne (Creational Patterns)

  • Singleton – tylko jedna instancja klasy.
  • Factory Method – deleguje tworzenie obiektów do podklas.
  • Abstract Factory – tworzenie rodzin powiązanych obiektów bez określania ich klas.
  • Builder – oddziela proces tworzenia obiektu od jego reprezentacji.
  • Prototype – tworzenie obiektów przez klonowanie istniejących instancji.
  • Object Pool – ponowne wykorzystanie wcześniej utworzonych obiektów.

2. Wzorce strukturalne (Structural Patterns)

  • Adapter – pozwala współpracować klasom o niezgodnych interfejsach.
  • Bridge – oddziela abstrakcję od implementacji.
  • Composite – traktuje grupy obiektów tak samo jak pojedyncze obiekty.
  • Decorator – dynamicznie dodaje nowe funkcje do obiektów.
  • Facade – upraszcza interfejs do złożonego systemu.
  • Flyweight – minimalizuje zużycie pamięci przez współdzielenie danych.
  • Proxy – kontroluje dostęp do innego obiektu (np. cache, lazy loading).

3. Wzorce behawioralne (Behavioral Patterns)

  • Chain of Responsibility – przekazuje żądanie przez łańcuch obiektów.
  • Command – reprezentuje polecenie jako obiekt.
  • Iterator – umożliwia sekwencyjny dostęp do elementów kolekcji.
  • Mediator – centralizuje komunikację między obiektami.
  • Memento – pozwala zapisywać i przywracać stan obiektu.
  • Observer – powiadamia inne obiekty o zmianach stanu.
  • State – zmienia zachowanie obiektu w zależności od jego stanu.
  • Strategy – definiuje rodzinę algorytmów wymiennych w czasie działania programu.
  • Template Method – definiuje szkielet algorytmu, pozostawiając szczegóły podklasom.
  • Visitor – umożliwia dodawanie nowych operacji bez modyfikacji struktur danych.
  • Interpreter – definiuje sposób interpretacji języka lub wyrażeń.

Dodatkowe wzorce i podejścia w PHP

  • Dependency Injection (DI) – wstrzykiwanie zależności w celu luźnego powiązania klas.
  • Repository – oddziela logikę dostępu do danych od logiki biznesowej.
  • Service Locator – centralny punkt dostępu do usług i zależności.
  • MVC (Model-View-Controller) – architektoniczny wzorzec używany w frameworkach PHP.

Zasady projektowe (akronimy)

SOLID

  • S – Single Responsibility Principle: jedna odpowiedzialność na klasę.
  • O – Open/Closed Principle: otwarte na rozszerzanie, zamknięte na modyfikacje.
  • L – Liskov Substitution Principle: podklasy muszą być wymienne z klasami bazowymi.
  • I – Interface Segregation Principle: wiele małych interfejsów zamiast jednego dużego.
  • D – Dependency Inversion Principle: zależność od abstrakcji, nie implementacji.

GRASP

  • Information Expert – odpowiedzialność przypisana klasie z odpowiednimi danymi.
  • Creator – klasa powinna tworzyć obiekty, które bezpośrednio wykorzystuje.
  • Low Coupling – niskie sprzężenie między klasami.
  • High Cohesion – wysoka spójność – klasa robi tylko to, do czego jest przeznaczona.
  • Controller – kontroler zarządza przepływem logiki aplikacji.

Inne akronimy

  • DRY – Don’t Repeat Yourself (nie powielaj kodu).
  • KISS – Keep It Simple, Stupid (utrzymuj prostotę kodu).
  • YAGNI – You Aren’t Gonna Need It (nie implementuj czegoś, dopóki nie jest potrzebne).
  • TDA – Tell, Don’t Ask (mów obiektom, co mają robić, zamiast pytać o dane).
💼 Szukam pracy jako programista PHP LinkedIn