- Работа с общими интерфейсами
-

voland_666
- May 1st, 10:46
Здравствуйте коллеги. Помогите новичку в Java, решить архитектурную задачу.
Есть несколько модулей, например А и В. Которые должны работать с общими интерфейсами, IA1, IA2, IB1, IB2. В тоже время, эти модули должны оставаться обособленными и не зависимыми друг от друга. В данном случае модуль A зависит от B, B от A. При сборке это приводит к ошибке циклических ссылок (или как то так).
Такая же проблема существовала и в С++. Решалось это так - все интерфейсы объявлялись в общем хедере, а имплементировались там, где это нужно. Получается, что каждый модуль, мог опрерировать всем набором интерфейсов, и быть независимым от других модулей.
Я знаю о существовании IoC Spring. Но эта технология позволяет лишь связать нужный интерфейс с нужной реализацией. А это немного не то, т.к интерфейсы всёравно должны быть гдето объявленны.
Сейчас я просто вынес все общие интерфейсы в отдельный модуль. Получился модуль, который ничего не делает а просто содержит набор интерфейсов. Его то я и подключаю, в те модули, где нужны какие - либо из этих интерфейсов (для использования или имплементации). Заодно, Спрингом связываю, если это нужно.
Вопрос - всё ли я делаю правильно ? Может быть в Джаве это делается как то иначе ? Может быть есть какое то стандартное и красивое решение ? Ибо то, что я сделал сейчас - это уж слишком в сишной манере.
UPD: Речь про то, чтобы вынести общие интерфейсы, без реализаций, в обдин пакет. Реализацию разбросать по разным модулям. А инстансы создавать через Спринг.