Re[9]: О "наивном" DI и об архитектурном бессилии
От: #John Европа https://github.com/ichensky
Дата: 22.09.16 12:21
Оценка:
Здравствуйте, ·, Вы писали:

·>И какой тут смысл создавать инстанс UserService? Чем UserService.Save со статическим методом хуже?

Вообщем-то можно и статические методы исспользовать.

·>Не понял. Что за ibeaconContext? Где DbConnection и ConnectionParams?

Опечатка. ibeaconContext — это someContext. SomeContext — это наследованный от Entities из EF, который наследуется от DbContext.
ConnectionParams ему можно передать из Singleton объектов.

·>Т.е. у тебя все зависимости будут синглтонами. Правильно понял? Жуть же. Типичный спагетти-код и радости дебага правильности порядка инициализации синглтонов.

Есть такое.

·>А теперь посмотрим на DI здорового человека:

·>
·>public class UserService {
·> public UserService(DbConnection connection, UserManager userManager) {this.connection = connection; this.userManager = userManager;}

·>

·>И отдельно где-нибудь в Global делаем явный wiring:
·>
·>var userService = new UserService(dbConnection, userManager);
·>

·>Почему редко такой код встречается?..
А если в классе UserService в методе Save для бизнес логики надо исспользовать разные *Managers,
а в методе Delete еще более разные(UserProfileManager, AcitvityManager и т.д.).
Передавать в UserService(FabricOfManagers fabric) — фабрику классов со всеми менеджерами?
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.