Запитання з тегом «dependency-injection»

Конструкція, що дозволяє зменшити зв'язок між компонентами, динамічно вводячи в програмний компонент залежності, які йому потрібні для функціонування.

9
Як поводитися з ін'єкцією залежності у програмі WPF / MVVM
Я запускаю нову програму для настільних ПК, і хочу створити її за допомогою MVVM та WPF. Я також маю намір використовувати TDD. Проблема полягає в тому, що я не знаю, як я повинен використовувати контейнер IoC, щоб вводити свої залежності від мого виробничого коду. Припустимо, у мене наступний клас та …

6
Передача даних у дочірні компоненти “router-outlet”
У мене є батьківський компонент, який переходить на сервер і отримує об’єкт: // parent component @Component({ selector : 'node-display', template : ` <router-outlet [node]="node"></router-outlet> ` }) export class NodeDisplayComponent implements OnInit { node: Node; ngOnInit(): void { this.nodeService.getNode(path) .subscribe( node => { this.node = node; }, err => { console.log(err); …

3
.NET Core DI, способи передачі параметрів конструктору
Наявність наступного конструктора послуг public class Service : IService { public Service(IOtherService service1, IAnotherOne service2, string arg) { } } Які варіанти передачі параметрів використовуються за допомогою механізму .NET Core IOC _serviceCollection.AddSingleton<IOtherService , OtherService>(); _serviceCollection.AddSingleton<IAnotherOne , AnotherOne>(); _serviceCollection.AddSingleton<IService>(x=>new Service( _serviceCollection.BuildServiceProvider().GetService<IOtherService>(), _serviceCollection.BuildServiceProvider().GetService<IAnotherOne >(), "" )); Чи є інший спосіб?

2
Як налаштувати інжекцію залежності DAGGER з нуля в Android-проект?
Як користуватися Dagger? Як налаштувати Dagger на роботу в моєму Android-проекті? Я хотів би використовувати Dagger у своєму проекті Android, але я вважаю це заплутаним. EDIT: Dagger2 також виходить з 2015 04 15, і це ще більше заплутано! [Це питання є "заглушкою", на яку я додаю свою відповідь, коли я …

6
Google Guice vs. PicoContainer для введення залежностей
Моя команда досліджує рамки ін'єкцій залежностей і намагається вирішити між використанням Google-Guice та PicoContainer. Ми шукаємо декілька речей у наших рамках: Невеликий слід коду - Що я маю на увазі під невеликим кодовим відбитком, це те, що ми не хочемо мати код сміття для введення залежності скрізь у нашій кодовій …

4
Введення Symfony 2 EntityManager в експлуатацію
Я створив свій власний сервіс, і мені потрібно внести доктрину EntityManager, але я не бачу, що __construct()це викликається у моїй службі, і ін'єкція не працює. Ось код і конфігурації: <?php namespace Test\CommonBundle\Services; use Doctrine\ORM\EntityManager; class UserService { /** * * @var EntityManager */ protected $em; public function __constructor(EntityManager $entityManager) { …


3
Насіння AngularJS: розміщення JavaScript в окремих файлах (app.js, controllers.js, direktives.js, filters.js, services.js)
Я використовую шаблон кутового насіння, щоб структурувати свою програму. Спочатку я поставив весь мій код JavaScript в один файл, main.js. Цей файл містив мою декларацію модуля, контролери, директиви, фільтри та служби. Додаток працює чудово, як це, але я переживаю за масштабованість та ремонтопридатність, оскільки моя програма стає складнішою. Я помітив, …

7
Чи можу я передати параметри конструктора в метод Unity Resolve ()?
Я використовую Unity від Microsoft для введення залежностей, і я хочу зробити щось подібне: IDataContext context = _unityContainer.Resolve<IDataContext>(); var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2); RepositoryAі RepositoryBобидва мають конструктор, який приймає …

7
виключити @Component із @ComponentScan
У мене є компонент, який я хочу виключити з a @ComponentScanу певному @Configuration: @Component("foo") class Foo { ... } В іншому випадку, здається, це зіткнеться з іншим класом у моєму проекті. Я не повністю розумію зіткнення, але якщо я коментую @Componentанотацію, все працює так, як я хочу. Але інші проекти, …

6
повторно відкрити та додати залежності до вже завантаженої програми
Чи є спосіб ввести пізню залежність до вже завантаженого кутового модуля? Ось що я маю на увазі: Скажімо, що у мене є загальнодоступний кутовий додаток, який визначається як: // in app.js var App = angular.module("App", []); І на кожній сторінці: <html ng-app="App"> Пізніше я знову відкриваю додаток, щоб додати логіку …

7
Інжекція залежності та шаблон одиночного дизайну
Як ми визначаємо, коли використовувати ін’єкцію залежностей або одиночний шаблон. Я читав на багатьох веб-сайтах, де кажуть: "Використовувати ін’єкцію залежності за одношаровим шаблоном". Але я не впевнений, чи повністю з ними згоден. У своїх невеликих або середніх проектах я однозначно бачу використання одинарного візерунка просто. Наприклад Logger. Я міг би …

2
Як отримати анотований екземпляр із інжектора Гіса?
Скажімо, у мене є модуль: Module extends AbstractModule { @Override protected void configure() { bind(String.class). annotatedWith(Names.named("annotation")). toInstance("DELIRIOUS"); } } і я хочу протестувати модуль і перевірити, чи вводить він правильне значення в Stringполе, анотоване, Names.named("annotation")не маючи класу та поля, але отримуючи значення безпосередньо з інжектора: @Test public void test() { …

2
Reader Monad для ін’єкції залежностей: кілька залежностей, вкладені виклики
Коли запитують про ін’єкцію залежності в Scala, досить багато відповідей вказують на використання Reader Monad, або тієї, що від Scalaz, або просто прокатки власної. Є ряд дуже чітких статей , що описують основи підходу (наприклад , ток Runar в , блог Джейсона ), але мені не вдалося знайти більш повний …

9
Що таке пітонічний спосіб введення залежності?
Вступ Для Java Dependency Injection працює як чистий ООП, тобто ви надаєте інтерфейс, який має бути реалізований, і у своєму коді фреймворку приймаєте екземпляр класу, який реалізує визначений інтерфейс. Що стосується Python, ви можете зробити те саме, але я думаю, що цей метод був занадто великим накладними у випадку з …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.