Zasada odwrócenia zależności

zasada odwrocenia zaleznosci

“Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych – zależności między nimi powinny wynikać z abstrakcji.”  

Klasa (moduł) wysokiego poziomu nie powinna zależeć od klasy niskiego poziomu. Obie powinny zależeć od abstrakcji. Do klasy wysokiego poziomu możemy zaliczyć kluczową logikę biznesową, natomiast niski poziom stanowi infrastruktura, dzięki której działa ww. logika. Wysoko poziomowy moduł powinien być elastyczny, nie należy go wiązać z jakimś obiektem, klasą.

zasada odwrócenia zależności

W przykładzie klasa Expense posiada funkcję dodaj, która tworzy wydatek. Obiekt klasy Expense jest tworzony wewnątrz klasy Database. (Zakładam, że w tym przypadku klasa Database jest klasą wysokiego poziomu). Lepszym rozwiązaniem jest odwrócenie zależności poprzez utworzenie interfejsu, który implementuje klasa Expense.  Natomiast argumentem funkcji saveDataToDatabase jest obiekt zaimplementowany przez interfejs Action.

zasada odwrócenia zależności

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *