![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Barvetal |
|
|||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: 5 Всего: 5 |
Вот смотрите. Есть у меня веб-приложение. Есть опеределнные классы бизнес-логики. Я не понимаю, что мне даст, если я буду выносить эти классы в отдельные сервисы.
Почитал весь сайт по хивмайнд от корки до корки. Ну даст мне эта технология разделение логики по сервисам. А без хивмайнда тоже есть разделение логики, только по классам (в каждом классе своя логика). Ну не надо будет мне писать создание объекта в коде, зато нужно писать getter и делать несколько строк записи в xml-файле. Разве это упрощает разработку? Все только разносится по разным файлам. А взять конфигурейшн пойнт. Они говорят, что удобно, что сразу все конфигурации из xml заганяются в классы. А если я буду использовать properties файлы, то у меня получение конфигурации тоже будет очень простое. Честное слово, почитал все доки, как работает понял, а что даст на практике, не понимаю... Объясните, пожалуйста, популярно, что мне даст использование технологии хивмайнд. Всем заранее большое спасибо! |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 7 Всего: 54 |
На практике вы попросту не будете писать всё это сами.
-------------------- ![]() ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Одно из достоинств использования IoC-контейнера - возможность очень простой замены одной реализации сервиса на другой, для этого достаточно лишь поменять описание в XML, не затрагивая код. В этом смысле сервисы будут напоминать легко подключаемые и заменяемые плагины. Что касается конфигурации, то в случае с properties придется самостоятельно прочитать файл с properties и использовать там где нужно. IoC-контейнер все сделает сам.
Использовать или не использовать - зависит от задачи. На самом деле IoC не всегда оправдан. Рекомендую почитать статью Мартина Файлера, если не читал, конечно,- http://www.martinfowler.com/articles/injection.html. |
|||
|
||||
Barvetal |
|
||||
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 181 Регистрация: 31.10.2005 Репутация: 5 Всего: 5 |
Позволю себе привести цитату из статьи Фаулера:
и ниже по коду:
Исследуя это все, прихожу к выводу, что есть ситуации, когда IoC следует использовать, а есть ситуации, когда его использование неокупается. Если я пишу приложение, использующее различные сервисы, и это приложение будет использоваться другими разработчиками в других командах, то однозначно IoC, чтобы те люди могли реализовывать свои сервисы. Если приложение использует различные сервисы, но приложение будет использоваться только одной командой разработчиков, то можно использовать и Service Locator, и IoC. Но Service Locator проще, IoC красивее. Разницу большую не вижу. Но я совершенно не вижу смысла применять IoC везде для каждого класса бизнес-логики. Например, пускай я пишу модуль для отдела кадров. Нужно реализовать прецедент приема на работу. Я не вижу смысла выносить метод приема на работу в сервис, подключаемый через IoC к некоему классу. Ведь этот метод специфичный для организации и используется только в одном месте. То-есть, я говорю о том, что если у меня есть специфическая бизнес-логика, которая используется только в одном месте и только в моей команде, не вижу никакого смысла использовать ни Service Locator, ни IoC для убирания зависимостей между классами бизнес-логики. Единственный случай, когда я вижу смысл использовать IoC в специфическом бизнес-приложении, это использование системных сервисов наподобие подключения в приложение кеша или использование внешних источников данных. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |