Size: a a a

Android Architecture

2020 September 24

AV

Alex Vayts in Android Architecture
Илья Максименко
Подскажите кто-то по ооп: какие преимущества даёт нам создание абстракции/интерфейса и имплементации, а в классах-клиентах предоставление зависимостей от абстракции? Одно из преимуществ насколько я знаю это упрощение тестирования, но разве с этим не справляется мокито?
Если у тебя есть класс, зависящий от презентера - он в будущем может получить любую релизацию.

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

RC

Roman Chumachenko in Android Architecture
Илья Максименко
Подскажите кто-то по ооп: какие преимущества даёт нам создание абстракции/интерфейса и имплементации, а в классах-клиентах предоставление зависимостей от абстракции? Одно из преимуществ насколько я знаю это упрощение тестирования, но разве с этим не справляется мокито?
финальный класс ты не замокаешь никак
в жабе классы по умолчанию открыты к наследованию, а вот в котлине нет, а делать все классы open как-то не охота
источник

ИМ

Илья Максименко... in Android Architecture
Roman Chumachenko
финальный класс ты не замокаешь никак
в жабе классы по умолчанию открыты к наследованию, а вот в котлине нет, а делать все классы open как-то не охота
а я не по котлину, вопрос изначально в конфе по дарту спросил
источник

ИМ

Илья Максименко... in Android Architecture
там открытые как в жаве
источник

RC

Roman Chumachenko in Android Architecture
Илья Максименко
а я не по котлину, вопрос изначально в конфе по дарту спросил
ну сори, уточнений не было, мокито вспомнил, вот я и подумал)
источник

ИМ

Илья Максименко... in Android Architecture
Alex Vayts
Если у тебя есть класс, зависящий от презентера - он в будущем может получить любую релизацию.

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

GK

Gen K in Android Architecture
Илья Максименко
Один из примеров, может кто смотрел, чистую архитектуру резо кодера. Там в домейн слое интерфейсы, а в слое данных реализации. Но пока что я это реализовал как тупое следование примеру, кто-то разобрался в плюшках?
С интерфейсами ты не зависишь от фреймворков в реализации слоя данных, если говорить об этом примере. Появилась более быстрая БД, к примеру. Тебе достаточно будет потихоньку писать новую реализацию слоя данных на новой БД. И как она будет готова, просто подменить этот слой. Все остальное трогать не придется.
источник

E

Eugene in Android Architecture
Владимир Тагаков из Lyft рассказывал что они выпиливают интерфейсы если они не нужны в репах и интеракторах)
источник

ИМ

Илья Максименко... in Android Architecture
Eugene
Владимир Тагаков из Lyft рассказывал что они выпиливают интерфейсы если они не нужны в репах и интеракторах)
тоже хочу так научиться
источник

ИМ

Илья Максименко... in Android Architecture
Gen K
С интерфейсами ты не зависишь от фреймворков в реализации слоя данных, если говорить об этом примере. Появилась более быстрая БД, к примеру. Тебе достаточно будет потихоньку писать новую реализацию слоя данных на новой БД. И как она будет готова, просто подменить этот слой. Все остальное трогать не придется.
но если нужно будет поменять БД, я могу просто поменять внутренность класса в отдельной ветке гита
источник

ИМ

Илья Максименко... in Android Architecture
может если нужно чтобы поддерживались одновременно несколько БД, тогда да
источник

ИМ

Илья Максименко... in Android Architecture
Илья Максименко
но если нужно будет поменять БД, я могу просто поменять внутренность класса в отдельной ветке гита
и опять же клиентский код это никак не затронет
источник

GK

Gen K in Android Architecture
Илья Максименко
но если нужно будет поменять БД, я могу просто поменять внутренность класса в отдельной ветке гита
Почитай книжку Р.Мартин "Чистая архитектура". Там и про SOLID и про проектирование и вообще.
источник

IN

Ilya Nikolaev in Android Architecture
Gen K
С интерфейсами ты не зависишь от фреймворков в реализации слоя данных, если говорить об этом примере. Появилась более быстрая БД, к примеру. Тебе достаточно будет потихоньку писать новую реализацию слоя данных на новой БД. И как она будет готова, просто подменить этот слой. Все остальное трогать не придется.
Так что тебе мешает сделать интерфейс потом, когда он тебе понадобится?)
источник

IN

Ilya Nikolaev in Android Architecture
И реализацию подменить?
источник

IN

Ilya Nikolaev in Android Architecture
Ну если у тебя есть тесты , то ты все равно на бд напишешь интерфейс.
источник

AT

Alexander Taran in Android Architecture
Что я здесь читаю? Начали с того что клин переоценен и не нужен, потом di не нужен и вообще против solid, а теперь и интерфейсы не нужны. Это что 2020-ый на вас так влияет или мы стоим на пороге новой эпохи?
источник

A

ABI in Android Architecture
2020
источник

QH

Quantum Harmonizer in Android Architecture
Alexander Taran
Что я здесь читаю? Начали с того что клин переоценен и не нужен, потом di не нужен и вообще против solid, а теперь и интерфейсы не нужны. Это что 2020-ый на вас так влияет или мы стоим на пороге новой эпохи?
Ну про DI-контейнеры, клин и интерфейсы ради интерфейсов уже много лет всё понятно.
источник

GR

Gor Rushanyan in Android Architecture
Может кто-то посоветовать пример mvi с котлиновскими flow? (В Гугле не забанен, и что-то нашел, но мало ли есть примеры получше)
источник