Wzorce projektowe – Dependency Injection
Założenie: Pokażemy, jak za pomocą wstrzykiwania zależności przekazać obiekt bazy danych do klasy “Użytkownik”, aby uniknąć silnego sprzężenia między klasami.
Krok po kroku:
- Stworzenie klasy reprezentującej bazę danych:
- Stworzenie klasy Użytkownik z wstrzyknięciem zależności:
- Użycie klas:
$id, "imie" => "Jan", "email" => "jan@example.com"];
}
}
?>
Klasa BazaDanych
zawiera metodę pobierzDaneUzytkownika
, która symuluje pobieranie danych użytkownika z bazy danych.
bazaDanych = $bazaDanych;
}
public function wyswietlDane($id) {
$dane = $this->bazaDanych->pobierzDaneUzytkownika($id);
echo "ID: " . $dane["id"] . "
";
echo "Imię: " . $dane["imie"] . "
";
echo "Email: " . $dane["email"] . "
";
}
}
?>
Klasa Użytkownik
przyjmuje obiekt BazaDanych
w konstruktorze. Dzięki temu, klasa Użytkownik
nie musi sama tworzyć obiektu BazaDanych
, a jedynie go używa.
wyswietlDane(1);
?>
Tworzymy obiekt BazaDanych
i przekazujemy go do konstruktora klasy Użytkownik
. Następnie wywołujemy metodę wyswietlDane
.
Ten przykład pokazuje podstawy wstrzykiwania zależności. Zachęcamy do dalszego zgłębiania tego wzorca projektowego, aby lepiej zrozumieć jego zalety i zastosowania w bardziej złożonych aplikacjach.