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
Dlaczego potrzebujemy ram do wstrzykiwania zależności? [Zamknięte]
Czytałem więcej na temat zasady Inversion of Control i Dependency Injection jako jej implementacji i jestem całkiem pewien, że ją rozumiem. Wydaje się, że w zasadzie mówi „nie deklaruj instancji członków klasy w obrębie klasy”. Zamiast tego instancje powinny być przekazywane i przypisywane przez konstruktora; „wstrzyknięty” do klasy z zewnętrznego …

2
Ile kosztuje za duże wstrzyknięcie zależności?
Pracuję w projekcie wykorzystującym (Spring) Dependency Injection do dosłownie wszystkiego, co jest zależnością klasy. Jesteśmy w punkcie, w którym plik konfiguracyjny Spring urósł do około 4000 linii. Niedawno obejrzałem jedną z przemówień wuja Boba na YouTube (niestety nie mogłem znaleźć linku), w których zaleca wstrzyknięcie tylko kilku głównych zależności (np. …

12
Czy stopniowa zmiana metodologii pisania kodu wpłynęła na wydajność systemu? I czy powinno mnie to obchodzić?
TD; DR: Było trochę zamieszania co do tego, o co pytałem, więc oto najważniejszy pomysł na pytanie: Zawsze chciałem, aby pytanie było takie, jakie jest. Być może początkowo nie wyraziłem tego dobrze. Ale intencja zawsze była „ modułowa, oddzielona, ​​luźno sprzężona, odsprzężona, zrefaktoryzowany kod ” znacznie wolniejszy z samej swojej …

3
W jaki sposób wtrysk zależny zwiększa sprzęganie?
Na stronie Wikipedii dotyczącej wstrzykiwania zależności, sekcja wad mówi: Wstrzykiwanie zależności zwiększa sprzężenie, wymagając od użytkownika podsystemu zaspokojenia potrzeb tego podsystemu. z linkiem do artykułu przeciw wstrzykiwaniu zależności . Wstrzykiwanie zależności powoduje, że klasa korzysta z interfejsu zamiast konkretnej implementacji. To powinno skutkować zmniejszeniem sprzężenia , prawda? czego mi brakuje? …

4
Czy „odwrócenie kontroli” promuje „model domeny anemicznej”?
Kiedy użyłem IoC Container w moim ostatnim projekcie, skończyłem z anemicznymi podmiotami i większością mojej logiki biznesowej w Stateless Services. Widziałem projekty napisane przez innych programistów, które wykorzystują „Inversion of Control” i zawsze są one „anemiczne”. Skoro „Anemic Domain Model” ma anty-wzorzec, czy można korzystać z IoC i Rich Domain? …


4
Przechwytywanie a wtryskiwanie: decyzja dotycząca architektury ramowej
Istnieją takie ramy, które pomagam zaprojektować. Istnieje kilka typowych zadań, które należy wykonać przy użyciu niektórych typowych komponentów: w szczególności rejestrowanie, buforowanie i wywoływanie zdarzeń. Nie jestem pewien, czy lepiej jest użyć wstrzykiwania zależności i wprowadzić wszystkie te składniki do każdej usługi (na przykład właściwości), czy też powinienem umieścić jakieś …

5
Jaki jest najlepszy sposób na zbudowanie fabryki za pomocą NInject?
Czuję się swobodnie dzięki wstrzykiwaniu zależności za pomocą NInject w MVC3. Pracując w aplikacji MVC3, stworzyłem niestandardową fabrykę tworzenia kontrolerów za pomocą NInject, więc każdy utworzony kontroler będzie miał wstrzykiwane w nim zależności za pośrednictwem tej fabryki kontrolerów. Teraz zaczynam opracowywać aplikację dla systemu Windows, chcę korzystać z wstrzykiwania zależności …


9
Wstrzykiwanie zależności: czy powinienem używać frameworka?
Niedawno pracowałem nad projektem Python, w którym intensywnie wykonaliśmy wstrzykiwanie zależności (ponieważ musimy, aby aplikacja była testowalna), ale nie użyliśmy żadnego frameworka. Czasami ręczne ułożenie wszystkich zależności było trochę uciążliwe, ale ogólnie działało świetnie. Gdy obiekt musiał zostać utworzony w wielu miejscach, mieliśmy po prostu funkcję (czasem klasową metodę tego …

4
Uzasadniona „prawdziwa praca” w konstruktorze?
Pracuję nad projektem, ale wciąż uderzam w przeszkodę. Mam określoną klasę (ModelDef), która jest zasadniczo właścicielem złożonego drzewa węzłów zbudowanego przez analizowanie schematu XML (think DOM). Chcę przestrzegać dobrych zasad projektowania (SOLID) i upewnić się, że powstały system jest łatwo testowalny. Mam zamiar używać DI do przekazywania zależności do konstruktora …

2
Projektowanie oparte na domenie - zewnętrzne zależności w problemie Entity
Chciałbym rozpocząć projektowanie oparte na domenie, ale jest kilka problemów, które chciałbym rozwiązać przed rozpoczęciem :) Wyobraźmy sobie, że mam grupy i użytkowników, a gdy użytkownik chce dołączyć do grupy, wywołuję groupsService.AddUserToGroup(group, user)metodę. W DDD powinienem to zrobić group.JoinUser(user), co wygląda całkiem nieźle. Problem pojawia się, jeśli istnieją pewne reguły …

7
Jaki jest „właściwy” sposób implementacji DI w .NET?
Szukam implementacji wstrzykiwania zależności w stosunkowo dużej aplikacji, ale nie mam w tym doświadczenia. Studiowałem koncepcję i kilka implementacji IoC oraz dostępnych wtryskiwaczy zależności, takich jak Unity i Ninject. Jednak jedna rzecz mnie umyka. Jak powinienem zorganizować tworzenie instancji w mojej aplikacji? Myślę o tym, że mogę stworzyć kilka konkretnych …

4
Czy programowanie funkcjonalne jest realną alternatywą dla wzorców wstrzykiwania zależności?
Niedawno czytałem książkę zatytułowaną Programowanie funkcjonalne w języku C # i przychodzi mi do głowy, że niezmienna i bezstanowa natura programowania funkcjonalnego osiąga wyniki podobne do wzorców wstrzykiwania zależności i jest prawdopodobnie jeszcze lepszym podejściem, szczególnie w odniesieniu do testów jednostkowych. Byłbym wdzięczny, gdyby ktokolwiek, kto ma doświadczenie w obu …

6
Czy użycie DI / IoC powinno usunąć wszystkie wystąpienia słowa kluczowego „new”?
Czy użycie Wstrzykiwania zależności i kontenera Odwrócenie kontroli powinno usunąć wszystkie wystąpienia newsłowa kluczowego „ ” z kodu? Innymi słowy, czy każdy obiekt / zależność, bez względu na to, jak proste lub krótkotrwałe, powinien być „zarejestrowany” w kontenerze IoC i wprowadzony do metody / klasy, która musi ich użyć? Jeśli …

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.