Dependency injection – poprzez właściwość klasy

Tego typu wstrzyknięcia nie używam zazwyczaj w kodzie, wydaje mi się że najlepsze, tj najłatwiejsze w implementacji i zrozumieniu, jest wstrzyknięcie poprzez konstruktor. Opis wstrzykiwania zależności bez tej metody nie był by pełny.

Wyjaśnienie kodu:

Klasa SimpleAddingParticipant wykorzystuję metody z trzech interfejsów:

  • INewRecord – metoda createNewRecord – tworzy nowy obiekt klasy Kartoteka2,
  • IAddZawodnik – metoda addParticipantWithoutTimeRegistrationVerification – wywołuje procedure składowaną, która dodaje nowego zawodnika,
  • IPlayerVerification – metoda searchPlayer – wyszukuje czy dany zawodnik jest już zarejestrowany (zapisany w bazie),
  • metoda validateFormatEmail – sprawdza formę zapisu adresu email

Deklaracja interfejsu

Definicja klasy

Fragment kontrolera

Bez użycia kontenera zależności, wszystkie wiązani w konstruktorze kontrolera.

Krótkie sprostowanie kod ten poniżej może być bardzo niezrozumiały:

this.isimpleAdd.isimpleAdd = this.isimpleAdd;

ale słuszny.

W kontrolerze mam interfejs isimpleAdd, który jest właściwością tegoż kontrolera. Klasa SimpleAddingParticipant dziedziczy po tym interfejsie i poprzez ten interfejs muszę nadać wartość interfejsowi ISimpleAddingParticipant, który jest właściwością klasy SimpleAddingParticipant (wiem nie co nie zrozumiałe ale kto mówił, że ma być prosto).

Kolejny post opisuje jak można odwrócić zależności za pomocą klasy abstrakcyjnej.