Показать сообщение отдельно
Старый 17.10.2023, 00:06
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
По умолчанию где хранить интерфейсы

Друзья, по мере разрастания проекта возник методический вопрос по организации файлов, в частности используемых интерфейсов. Сейчас у меня древо внутри папки scr содержит разделы model, data, language, view и т.д. Далее вложенная структура одинаковая: characters, actions, items и т.д. В целом, всё красиво и логично, понятно, где что искать.

Но из этой иерархии выпадают интерфейсы. Изначально я их начал создавать для классов Модели, чтобы выдавать во Вью в режиме read-only. Сделал папку "interfaces" внутри "model" и пошёл добавлять туда ICharaterRO, IActionRO, IItemRO... Потом добавились специфический интерфейсы для классов подбора фраз, Вью и т.п. Всё работает, но, как говорилось в известном анекдоте, неаккуратненько.

Собственно, вопрос, где принято хранить интерфейсы? Я вижу три варианта:
1/ Сделать на корневом уровне проекта пакет "interfaces" и записывать туда все. Соответственно, понятно, куда ломиться за интерфейсом из любого класса;
2/ Создать внутри каждого раздела (model, language, view) пакет "interfaces" и записывать туда все, относящиеся к данному разделу;
3/ Вообще не создавать никаких пакетов, а записывать интерфейсы непосредственно в те пакеты, с классами которого они работают. Например IActionRO будет жить в model\actions, а ICharacterRO - в model\character

Я думаю, суть вы уловили. Что выбрать и почему?
Спасибо.
__________________
Не сломано - не чини!