Re[6]: Интерфейсы и реализация
От: · Великобритания  
Дата: 03.09.20 07:20
Оценка:
Здравствуйте, rosencrantz, Вы писали:

R>>>Я не всегда хочу п.1, но когда я хочу, тогда я делаю "интерфейс с одной реализацией". Мой пример кода — это п.1, ваш — это п.2. О чём мы тут спорим?

R>·>Я пытаюсь выяснить что скрывается за словом "хочу". Ведь должны быть какие то более-менее рациональные критерии выбора. Это и есть вопрос топикстартера.

R>Тс задал вопрос про классы, поэтому я отвечаю про классы. Нужен интерфейс или не нужен (у меня) диктуется тем, хотим мы выделить модуль или нет. Если решение состоит из двух (или больше) модулей, интерфейсы нужны, даже если реализация всего одна. Если решение состоит из одного модуля, интерфейсы не нужны. Один и тот же набор классов можно воспринимать и как один модуль, и как несколько.

Модуль это в смысле jar/dll? Да, там без интерфейса в принцпипе не получится. Я об этом уже писал в самом первом моём сообщении. Но у модуля довольно много накладных расходов и они должны быть меньше, чем выгода от использования модулей.

R>Хотим мы один модуль или несколько — тут по-моему всё сильно зависит от ментальных моделей и предпочтений. Лезет задачу в голову легко, или со скрипом, или вообще не лезет. Кто-то думает — "мне дают какие-то записи, я группирую их по 100 и делаю batch insert" и ему комфортно. Кто-то думает — "я читаю из csv по 100 строчек и делаю batch insert" и ему комфортно. Кто-то думает — "я получаю какие-то записи и как-то их обрабатываю" (таких обычно бьют, да? ). Модули по-моему откуда-то отсюда вытекают (как и coupling/cohesion, SRP, правило 5+/-2 и прочие всем известные уловки).

Тоже опять какие-то субъективные критерии, желание левой пятки...
Модули нужны таки для переиспользования и ограничения зависимостей. Например, чтобы в модуле работы с файловой системой не было доступа к сети. Ещё для организации процесса разработки, например, разработка разными командами или для повышения эффективности процесса билда/тестирования/етс.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.