Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Dependency Injection. Целесообразность / 11 сообщений из 11, страница 1 из 1
06.06.2016, 14:32
    #39251244
Andrey3k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
Объясните пожалуйста в каких случаях следует использовать внедрение зависимостей.

Пишу приложение под Android. В задании сказано использовать Dagger 2.

Только я никак не пойму где нужно и для чего DI. Объясните пожалуйста.
...
Рейтинг: 0 / 0
06.06.2016, 14:46
    #39251255
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
Andrey3k,

А что поиск на сайте сломался? Уже сколько раз обсуждали.
Есть такая область подзадач на проекте - управлять зависимостями. Если её, нет, то у вас управление зависимостями размазано по всем классам. Если вы управление зависимостями уберете из всех классов, то их код станет чище и будет сконцентрирован на конкретной роли этих классов. DI это ещё и удобный способ изолировать управление жизненным циклом объектов от самих объектов.

http://rsdn.ru/forum/design/3243723.1
http://rsdn.ru/forum/design/3243732.1
http://rsdn.ru/article/ioc/Inversion of Control2.xml
...
Рейтинг: 0 / 0
06.06.2016, 14:47
    #39251257
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
...
Рейтинг: 0 / 0
06.06.2016, 15:35
    #39251311
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
di рулит. я жизни без него не представляю. спринг тоже рулит. это надо просто попробовать, чтоб понять как это удобно. а когда поймешь - будет поздно и назад уже не вернешься.

эх. мне бы еще аоп постигнуть.
...
Рейтинг: 0 / 0
06.06.2016, 15:46
    #39251321
Andrey3k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
У меня в проекте менеджер базы данных используется во всех Activities приложения.

Единственное что я придумал инжектить его. Можете описать пример на базе Dagger 2 как это сделать ?
...
Рейтинг: 0 / 0
06.06.2016, 15:51
    #39251326
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
andreykaTdi рулит. я жизни без него не представляю. спринг тоже рулит. это надо просто попробовать, чтоб понять как это удобно. а когда поймешь - будет поздно и назад уже не вернешься.

эх. мне бы еще аоп постигнуть.
AOP - это тоже плюшка сомнительно полезная. Тоесть если ты можешь просто написать код без AOP- пиши
без него. И вообще... необходимость введения AOP нужно обосновывать.
...
Рейтинг: 0 / 0
06.06.2016, 15:56
    #39251334
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
Andrey3kУ меня в проекте менеджер базы данных используется во всех Activities приложения.

Единственное что я придумал инжектить его. Можете описать пример на базе Dagger 2 как это сделать ?
стандартная многослойка: бин сессий (внутри которого транзакшнл манагер) инжектится в бинЫ дао, бинЫ дао инжектится в бинЫ сервиса, бинЫ сервиса инжектится в бинЫ представления (ну или как там у тебя реализовано)
...
Рейтинг: 0 / 0
06.06.2016, 15:57
    #39251335
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
maytonandreykaTdi рулит. я жизни без него не представляю. спринг тоже рулит. это надо просто попробовать, чтоб понять как это удобно. а когда поймешь - будет поздно и назад уже не вернешься.

эх. мне бы еще аоп постигнуть.
AOP - это тоже плюшка сомнительно полезная. Тоесть если ты можешь просто написать код без AOP- пиши
без него. И вообще... необходимость введения AOP нужно обосновывать.

Честно говоря, что я знаю, что аннотации транзакшинал в спринге это типа реализация АОП. что это означает в сакральном смысле - понятия не имею )) Просто знаю куда ставить и в чем ее смысл и собссно всё.
...
Рейтинг: 0 / 0
06.06.2016, 16:00
    #39251339
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
andreykaTЧестно говоря, что я знаю, что аннотации транзакшинал в спринге это типа реализация АОП. что это означает в сакральном смысле - понятия не имею )) Просто знаю куда ставить и в чем ее смысл и собссно всё.
+1 Всё верно. Аннотация имеет смысл только в контексте конейнера в котором она работает.
Без нее - это просто тег в исходнике. Некоторые базовые аннотации языка такие как @Override
несут смысл в фазе компилляции. Как хинт или подсказка.

Я еще использую @NotNull,@Nullable для усиления контрактов везде где могу только обосновать.
...
Рейтинг: 0 / 0
06.06.2016, 16:53
    #39251390
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
Andrey3kУ меня в проекте менеджер базы данных используется во всех Activities приложения.

Единственное что я придумал инжектить его. Можете описать пример на базе Dagger 2 как это сделать ?
Ну, то есть архитектура приложения сводится к двум элементам Data Access Layer и "всё остальное". Так?
...
Рейтинг: 0 / 0
06.06.2016, 19:00
    #39251481
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Dependency Injection. Целесообразность
Andrey3kУ меня в проекте менеджер базы данных используется во всех Activities приложения.
Единственное что я придумал инжектить его.
когда твое приложение вырастет и тебе понадобится связать два куска программы, которые ничего друг о друге не знают - ты вспомнишь про di
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Dependency Injection. Целесообразность / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]