Wstrzykiwanie zależności, to wzorzec projektowy, w którym zależności (wystąpienia obiektów, właściwości) komponentu są ustawiane za pomocą konstruktora (ów), metod lub pól (właściwości). Jest to specjalna forma bardziej ogólnej inwersji zależności.
Ostatnio dyskutowano o problemach z używaniem (i nadużywaniem) Singletonów. Byłem także jedną z tych osób wcześniej w mojej karierze. Widzę, na czym polega teraz problem, a jednak wciąż jest wiele przypadków, w których nie widzę fajnej alternatywy - i niewiele dyskusji na temat Singleton naprawdę ją oferuje. Oto prawdziwy przykład …
Zaczynam nowy projekt w Javie i zastanawiam się nad Springem. Dlaczego rozważam wiosnę? Ponieważ wiele osób mówi mi, że powinienem użyć wiosny! Poważnie, za każdym razem, gdy próbuję nakłonić ludzi do wyjaśnienia, czym dokładnie jest Wiosna i co ona robi, nigdy nie mogą dać mi prostej odpowiedzi. Sprawdziłem wprowadzenie na …
Od czasu uczenia się (i uwielbiania) automatycznych testów, stosuję wzorzec wstrzykiwania zależności w prawie każdym projekcie. Czy zawsze należy stosować ten wzorzec podczas pracy z testami automatycznymi? Czy istnieją sytuacje, w których należy unikać wstrzykiwania zależności?
Wstrzykiwanie zależności (DI) jest dobrze znanym i modnym wzorem. Większość inżynierów zna jego zalety, takie jak: Umożliwienie / łatwość izolacji podczas testów jednostkowych Jawne definiowanie zależności klasy Ułatwienie dobrego projektu ( na przykład zasada pojedynczej odpowiedzialności ) Szybkie włączanie implementacji przełączania ( DbLoggerzamiast ConsoleLoggerna przykład) Uważam, że istnieje ogólna zgoda …
Widziałem wiele odniesień do Dependency Injection (DI) i Inversion Of Control (IOC), ale tak naprawdę nie wiem, czy jest między nimi różnica, czy nie. Chciałbym zacząć korzystać z jednego lub obu z nich, ale jestem trochę zdezorientowany, jak się różnią.
Czytam o iniekcji zależności (DI). Dla mnie jest to bardzo skomplikowana rzecz, ponieważ czytałem, że odnosi się to również do inwersji kontroli (IoC) i czułem, że będę w podróży. Rozumiem to: zamiast tworzyć model w klasie, która również go zużywa, przekazujesz (wstrzykujesz) model (już wypełniony interesującymi właściwościami) tam, gdzie jest …
Rozumiem, że bezpośrednie tworzenie instancji zależności w klasie jest uważane za złą praktykę. Ma to sens, ponieważ tak ścisłe łączenie wszystkiego, co z kolei sprawia, że testowanie jest bardzo trudne. Prawie wszystkie frameworki, które spotkałem, wydają się faworyzować wstrzykiwanie zależności za pomocą kontenera niż używanie lokalizatorów usług. Oba wydają się …
Rozumiem wartość automatycznego testowania i używam go wszędzie tam, gdzie problem jest wystarczająco dokładnie określony, że mogę wymyślić dobre przypadki testowe. Zauważyłem jednak, że niektórzy ludzie tutaj i na StackOverflow kładą nacisk na testowanie tylko jednostki, a nie jej zależności. Tutaj nie widzę korzyści. Wyśmiewanie / odgałęzienie w celu uniknięcia …
Poinformuj mnie, że jestem wielkim fanem wstrzykiwania zależności (DI) i testów automatycznych. Mógłbym o tym rozmawiać cały dzień. tło Niedawno nasz zespół właśnie dostał ten duży projekt, który ma powstać od podstaw. Jest to strategiczna aplikacja o złożonych wymaganiach biznesowych. Oczywiście chciałem, żeby był ładny i czysty, co dla mnie …
Projektując system, często napotykam problem polegający na tym, że wiele modułów (logowanie, dostęp do bazy danych itp.) Jest używanych przez inne moduły. Pytanie brzmi: jak przejść do dostarczania tych komponentów innym komponentom. Dwie odpowiedzi wydają się możliwe wstrzyknięcie zależności lub użycie wzorca fabrycznego. Jednak oba wydają się błędne: Fabryki sprawiają, …
Wiem, że jest to gorąca debata, a opinie zmieniają się z czasem co do najlepszej praktyki podejścia. Kiedyś korzystałem wyłącznie z iniekcji terenowych do moich zajęć, dopóki nie zacząłem czytać na różnych blogach (np. Petrikainulainen i schauderhaft i fowler ) o korzyściach z iniekcji konstruktora. Od tego czasu zmieniłem swoje …
W ciągu ostatnich kilku lat powoli przechodziliśmy na stopniowo coraz lepszy kod, kilka kroków naraz. W końcu zaczynamy przestawiać się na coś, co przynajmniej przypomina SOLID, ale jeszcze tam nie jesteśmy. Od czasu dokonania zmiany, jednym z największych zarzutów ze strony programistów jest to, że nie mogą znieść recenzowania i …
Podczas przeglądania artykułów na temat wzorców projektowych (lokalizator usług) przyglądałem się terminom wstrzykiwanie konstruktora i wstrzykiwanie zależności. Kiedy przejrzałem Google na temat wstrzykiwania konstruktora, otrzymałem niejasne wyniki, które skłoniły mnie do sprawdzenia się tutaj. Co to jest zastrzyk konstruktora? Czy to specyficzny rodzaj wstrzyknięcia zależności? Świetnym rozwiązaniem byłby kanoniczny przykład! …
Moi koledzy lubią mówić „logowanie / buforowanie / itd. To problem przekrojowy”, a następnie wszędzie używają odpowiedniego singletonu. A jednak uwielbiają IoC i DI. Czy to naprawdę słuszna wymówka, by złamać zasadę SOLI D.
Obecnie próbuję znaleźć SOLID. Zatem zasada inwersji zależności oznacza, że dowolne dwie klasy powinny komunikować się za pośrednictwem interfejsów, a nie bezpośrednio. Przykład: Jeśli class Ama metodę, która oczekuje wskaźnika do obiektu typu class B, wówczas metoda ta powinna faktycznie oczekiwać obiektu typu abstract base class of B. Pomaga to …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.