
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
11.11.2014, 13:09
|
|||
|---|---|---|---|
Насколько актуален подход с интерфейсами в бизнеслогике/DAO при работе со Spring? |
|||
|
#18+
Со времён появления спринга актуален был подход, когда описывается интерфейс в бизнес логике (как контракт) и затем делается его реализация. Соответственно все работают с интерфейсом, а в контексте описана конкретная имплементация, которая будет создана в контейнере. Во всех проектах, в которых я участвовал, была только одна реализация. Я говорю про уровень DAO и сервисов. Другие реализации могли быть только в целях тестирования, в виде mock объектов или например в целях тестирования производительности с разными подходами или разными БД. Сейчас даже в целях тестирования легко и просто с mockito можно оборачивать классы безо всяких интерфейсов и получать требуемое поведение. Proxy объекты в runtime тоже не проблема. Механизмы рефакторинга в современных IDE также позволяют легко менять в коде всё, что нужно. Получается, что если реализация какого-то интерфейса в приложении только одна, то вроде как и интерфейс теряет смысл. Кроме того, что он чётко определяет контракт взаимодействия. Или? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.11.2014, 13:16
|
|||
|---|---|---|---|
|
|||
Насколько актуален подход с интерфейсами в бизнеслогике/DAO при работе со Spring? |
|||
|
#18+
junixar, Ну, первопричиной надобности в интерфейсах был всё же АОП реализованый через JDK Proxy. Замена реализации это очень вторичная надобность. И, как верно замечено, в большинстве случаев, бесполезная. Поэтому не нужно плодить дополнительных сущностей без необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2126291]: |
0ms |
get settings: |
5ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 423ms |

| 0 / 0 |
