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:

  1. Stworzenie klasy reprezentującej bazę danych:
  2. 
     $id, "imie" => "Jan", "email" => "jan@example.com"];
        }
    }
    ?>
    				

    Klasa BazaDanych zawiera metodę pobierzDaneUzytkownika, która symuluje pobieranie danych użytkownika z bazy danych.

  3. Stworzenie klasy Użytkownik z wstrzyknięciem zależności:
  4. 
    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.

  5. Użycie klas:
  6. 
    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.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *