Pytania otagowane jako dependency-injection

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.

4
Stopniowe podejście do wstrzykiwania zależności
Pracuję nad tym, aby moje klasy mogły być testowane jednostkowo przy użyciu wstrzykiwania zależności. Ale niektóre z tych klas mają wielu klientów i nie jestem jeszcze gotowy przefakturować ich wszystkich, aby zacząć przekazywać zależności. Więc staram się to robić stopniowo; zachowując na razie domyślne zależności, ale pozwalając na ich zastąpienie …


5
Jak stosować wstrzykiwanie zależności i unikać czasowego łączenia?
Załóżmy, że mam ten, Servicektóry odbiera zależności za pośrednictwem konstruktora, ale przed użyciem można go także zainicjować za pomocą niestandardowych danych (kontekstu): public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private readonly …

4
Używać wstrzykiwania zależności dla obiektów danych?
Uczę się tylko o wstrzykiwaniu zależności i utknąłem na czymś. Dependency Injection zaleca wysyłanie klas zależnych przez konstruktor, ale zastanawiam się, czy jest to konieczne w przypadku obiektów danych. Ponieważ testowanie jednostkowe jest jedną z głównych zalet DI, czy obiekt danych, który przechowuje tylko dane, a nie jakiekolwiek procedury, kiedykolwiek …

1
Korzystanie z metody rozpoznawania kolejności w Pythonie dla wstrzykiwania zależności - czy to źle?
Widziałem, jak Raymond Hettinger Pycon mówi „Super uważany za super” i dowiedziałem się trochę o MRO Pythona (Order Resolution Order), który deterministycznie interpretuje klasy „nadrzędne”. Możemy to wykorzystać na naszą korzyść, tak jak w poniższym kodzie, aby wykonać wstrzyknięcie zależności. Więc teraz oczywiście chcę używać superdo wszystkiego! W poniższym przykładzie …

4
Jak korzystać z wtrysku zależności w połączeniu ze wzorem fabrycznym
Rozważ moduł odpowiedzialny za parsowanie plików dowolnego typu. Zastanawiam się nad wykorzystaniem wzorca strategii do rozwiązania tego problemu, jak już tu wyjaśniłem . Przed przejściem do tego pytania zapoznaj się z połączonym postem. Rozważ klasę B, która potrzebuje zawartości pliku product.xml. Ta klasa będzie musiała utworzyć instancję odpowiedniego konkretnego implementatora …

5
Czy możemy całkowicie zastąpić dziedziczenie za pomocą wzorca strategii i wstrzykiwania zależności?
Na przykład: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Ponieważ klasa Duck zawiera wszystkie zachowania (abstrakcyjne), tworzenie nowej klasy MallardDuck(która się rozszerza Duck) nie wydaje się być wymagane. Odniesienie: Wzorzec projektowy Head First, rozdział 1.


1
Jaka jest motywacja adnotacji @ImplementedBy w Guice?
Niedawno przeczytałem o @ImplementedByadnotacjach dostępnych w Google Guice . Pozwala programiście określić powiązanie między interfejsem a jego implementacją do wykorzystania w przyszłości we wstrzykiwaniu zależności. Jest to przykład wiązania just-in-time . Jestem przyzwyczajony do definiowania jawnych powiązań w moich modułach, używając następującej składni: bind(SomeInterface.class).to(SomeInterfaceImplementation.class); Zgodnie z dokumentacją jest to równoznaczne …

1
Wiele organizacji kodu aplikacji Zend
Przez ostatni rok pracowałem nad serią aplikacji opartych na frameworku Zend i koncentrowałem się na złożonej logice biznesowej, do której wszystkie aplikacje muszą mieć dostęp, nawet jeśli nie używają wszystkich (łatwiej niż mieć wiele folderów bibliotecznych dla każdego aplikacji, ponieważ wszystkie są połączone ze wspólnym centrum). Nie wchodząc w szczegółowe …


3
Zalecenia dotyczące integracji kontenera DI / IoC z istniejącą aplikacją
Mam teraz do czynienia z integracją kontenera inwersji sterowania (IoC) z istniejącą aplikacją i szukam rekomendacji, w jaki sposób można to najłatwiej osiągnąć z ostatecznym celem zmniejszenia sprzężenia, a tym samym zwiększenia testowalności. Chociaż generalnie nie klasyfikowałbym większości klas jako obiektów boskich , każda z nich ma zbyt wiele obowiązków …


4
kontekst otoczenia a wstrzykiwanie konstruktora
Mam wiele podstawowych klas, które wymagają ISessionContext bazy danych, ILogManager dla dziennika i IService używane do komunikacji z innymi usługami. Chcę użyć wstrzykiwania zależności dla tej klasy używanej przez wszystkie podstawowe klasy. Mam dwie możliwe implementacje. Klasa podstawowa, która akceptuje IAmbientContext ze wszystkimi trzema klasami lub wstrzykuje dla wszystkich klas …

3
Ile zastrzyków jest dopuszczalnych w jednej klasie, gdy stosuje się wstrzykiwanie zależności
Używam Unity w języku C # do wstrzykiwania zależności, ale pytanie powinno mieć zastosowanie do każdego języka i struktury używającej wstrzykiwania zależności. Staram się przestrzegać zasady SOLID, dlatego otrzymałem wiele abstrakcji. Ale teraz zastanawiam się, czy istnieje najlepsza praktyka dla liczby zastrzyków, które jedna klasa powinna wstrzyknąć? Na przykład mam …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.