Odwrócenie sterowania (IoC) to abstrakcyjna zasada opisująca aspekt niektórych projektów architektury oprogramowania, w których przepływ sterowania w systemie jest odwrócony w porównaniu z programowaniem proceduralnym.
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ą.
Słowa invertlub controlwcale nie są używane do zdefiniowania Odwrócenia kontroli w definicjach, które widziałem. Definicje Wikipedia Inwersja sterowania (IoC) jest techniką programowania, wyrażoną tutaj w kategoriach programowania obiektowego, w której sprzężenie obiektów jest powiązane w czasie wykonywania przez obiekt asemblera i zwykle nie jest znane w czasie kompilacji za pomocą …
Projektuję nowy system i chcę wiedzieć, czym jest inwersja kontroli (MKOl), a co ważniejsze, kiedy z niej korzystać. Czy to musi być zaimplementowane z interfejsami czy może być zrobione z klasami?
Pracuję w zespole, w którym kierownik zespołu jest zjadliwym orędownikiem zasad rozwoju SOLID. Brakuje mu jednak dużego doświadczenia w uzyskiwaniu skomplikowanego oprogramowania. Mamy sytuację, w której zastosował SRP do tego, co było już dość złożoną bazą kodu, która stała się teraz bardzo rozdrobniona, trudna do zrozumienia i debugowania. Mamy teraz …
Jaki jest cel kontenerów MKOl? Połączone powody można uprościć w następujący sposób: Podczas korzystania z zasad programistycznych OOP / SOLID, wstrzykiwanie zależności jest nieporządne. Albo masz punkty wejścia najwyższego poziomu, które zarządzają zależnościami dla wielu poziomów poniżej siebie i przekazują zależności rekurencyjnie przez konstrukcję, albo masz nieco zduplikowany kod we …
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 …
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 …
Niezależnie od popularności, czy istnieją jakieś dowody empiryczne, które pokazują, że wstrzykiwanie zależności (i / lub użycie kontenera DI) pomaga, powiedzmy, w zmniejszeniu liczby błędów, poprawie łatwości konserwacji lub zwiększeniu prędkości opracowywania rzeczywistych projektów oprogramowania?
Jestem wielkim fanem DI / IOC. Doskonale nadaje się do radzenia sobie z abstrakcyjnymi zależnościami i ułatwia życie. Mam jednak niewielką wadę, której nie jestem pewien, jak rozwiązać. Podstawową ideą w DI / IOC jest to, że gdy instancja obiektu jest tworzona, wszystkie jego zależności są wstępnie wypełniane w konstruktorze. …
Użyłem różnych kontenerów IoC (Castle.Windsor, Autofac, MEF itp.) Dla .Net w wielu projektach. Zauważyłem, że są one często nadużywane i zachęcają do wielu złych praktyk. Czy istnieją jakieś ustalone praktyki dotyczące korzystania z kontenerów IoC, szczególnie w przypadku zapewniania platformy / platformy? Moim celem jako twórcy frameworku jest uczynienie kodu …
Przepraszam, jeśli wydaje się to kolejną powtórką pytania, ale za każdym razem, gdy znajduję artykuł na ten temat, głównie mówi on o tym, czym jest DI. Tak, dostaję DI, ale staram się zrozumieć potrzebę kontenera IoC, do którego wszyscy chyba się pakują. Czy celem kontenera IoC jest po prostu „automatyczne …
Kontekst: Używam C # Zaprojektowałem klasę. Aby ją odizolować i ułatwić testowanie jednostek, przekazuję wszystkie jej zależności; nie tworzy wewnętrznej instancji obiektu. Jednak zamiast odwoływać się do interfejsów w celu uzyskania potrzebnych danych, odwołuję się do Funcs ogólnego przeznaczenia zwracających wymagane dane / zachowanie. Kiedy wstrzykuję jej zależności, mogę to …
Ostatnio zajmuję się bardziej „zorganizowanym” programowaniem i dowiaduję się, że powinienem programować interfejs, a nie implementację. Mając to na uwadze, czy lepiej byłoby „naszkicować” projekt w interfejsach przed napisaniem implementacji, jeśli to możliwe? A jeśli tak jest, to w przypadku korzystania z bibliotek stron trzecich (tj. Lidgren), czy powinienem owijać …
Nauczyłem się robić Test Driven Development (TDD), Dependency Injection (DI) i Inversion of Control (IoC) jednocześnie. Kiedy piszę kod za pomocą TDD, zawsze używam DI w konstruktorach mojej klasy. Zastanawiam się, czy to z powodu tego, jak nauczyłem się robić TDD, czy jest to naturalny efekt uboczny TDD. Moje pytanie …
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.