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