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

start [/forum/topic.php?fid=59&fpage=152&tid=2126291]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
288ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 577ms |

| 0 / 0 |
