214 похожих чатов

Задам, наверное, холиварный вопрос. Многие из вас пишут, что практически

все оборачивают в интерфейсы. Объясните, в чем смысл этого?

4 ответов

7 просмотров

ну это наверное исходя из тестирования, чтобы потом создать отдельную реализацию например для тестов

Не скажу, что всё оборачиваю, но мне просто нравится иметь некий контракт для классов. Открыл интерфейс и сразу видишь, что его реализация умеет делать. Там же стараюсь вести основную java-доку.

Ну, во-первых: вообще всё оборачивать не имеет смысла. Во-вторых: общую логику всё же лучше оборачивать. Для вью и презентера всё понятно. Про интерактор и репозиторий (он же gateway) я часто слышал, что лучше для них не писать интерфейсы, но с этим я категорически не согласен. Как я предлагаю делать: для каждого экрана описывать свой контракт с внутренними интерфейсами View Presenter Interactor Gateway, где описывать только те методы, которые нужны этим Interactor и Gateway, а потом все интерфейсы Interactor-ов имплементить реальным интеракторам (которые не по одному для каждого экрана, а по фичам). Итого, какой профит: 1) программирование на уровне интерфейсов 2) слабая связанность 3) изоляция не нужного функционала

кроме упрощенного тестирования, гибкость в изменении реализаций. Но во всем должна быть мера. Все оборачивать в интерфейсы - это конечно избыточно

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта