|
0 / 0 / 0
Регистрация: 29.06.2020
Сообщений: 19
|
|
Для чего нужны интерфейсы?24.07.2022, 01:13. Показов 5163. Ответов 91
Метки нет (Все метки)
Всем привет!
Я посмотрел вокруг и тоже решил позадавать тупые вопросы. Например, я не могу понять, зачем нужны интерфейсы как таковые? Что мешает реализовывать методы без использования интерфейсов? Почему-то большинство людей отвечают на этот вопрос в стиле "ну интерфейс - это такая штука, ей можно делать то-другое", а после вопроса "кто мешает делать то же самое без интерфейса? Вот убираешь "implements"... ии?" замолкают. Из всего, что я выяснил, у меня получилось два пункта: первое - по интерфейсу можно группировать разные объекты (например, запихнуть в ArrayList), второе - чтобы в большом проекте не провтыкать вещи, которые должен реализовывать определённый класс. Имеют ли мои выводы отношение к жизни и можно ли к ним добавить ещё что-то? Ну или ткните в умную литературу, только о том, что такое интерфейс и как его делать я и так начитался.
0
|
|
| 24.07.2022, 01:13 | |
|
Ответы с готовыми решениями:
91
Для чего нужны параметры метода? Return для хранения данных?
Для чего нужен абстрактные классы/интерфейсы? |
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
||||||||
| 02.08.2022, 15:35 | ||||||||
|
А если прикрутить, например, DynamicProxy и избавиться от передачи ссылки на вызываемый метод?
Без функциональных интерфейсов вовсе:
1
|
||||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|||||||||
| 02.08.2022, 16:39 | |||||||||
Добавлено через 46 секунд
0
|
|||||||||
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
||||||
| 02.08.2022, 17:00 | ||||||
|
korvin_, ленивая инициализация немного мимо кассы. Скорее это паттерн Стратегия. Но какая-то кривая реализация без интерфейсов.
Без интерфейсов можно и так:
ToDoubleFunction'ы и пробегаться по ключам на instanceof, но все равно это криво и не расширяемо.
0
|
||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
|
| 02.08.2022, 20:17 | |
|
0
|
|
|
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
|
|
| 02.08.2022, 20:41 | |
|
korvin_, ваша реализация тоже не лишена данного недостатка - требуется явно передавать ссылку на метод. + Можно передать любой другой метод, вместо
area(), что приведет к нарушению контракта метода printArea().
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||||
| 02.08.2022, 23:48 | ||||
|
0
|
||||
|
Модератор
|
|||||||||||||||||
| 03.08.2022, 21:26 | |||||||||||||||||
|
Кликните здесь для просмотра всего текста
Вот это
1
|
|||||||||||||||||
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
|
||
| 04.08.2022, 11:04 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 25.07.2022
Сообщений: 7
|
|
| 11.08.2022, 12:40 | |
|
Добрый День, я осваиваю объектое программирование и задавал также себе вопрос, для чего нужны интерфейсы.
Подскажите пожалуйста с примером прстым зачем нужны интерфейсы. Вопрос чтобы лучше понять предназначение интерфейсов, а не дискутировать. Спасибо
0
|
|
|
Супер-модератор
|
|||||||||||
| 11.08.2022, 13:02 | |||||||||||
|
Berliner, вот классический пример на тему "абстрактные классы"
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 25.07.2022
Сообщений: 7
|
|
| 11.08.2022, 16:47 | |
|
спасибо за пример. Буду разбираться
0
|
|
| 11.08.2022, 16:47 | |
|
Для чего нужны custom Tags ? Struts для чего они нужны? Зачем нужны интерфейсы? Что такое Ant и Struts, и для чего нужны? Коллекции List/ArrayList: чем отличаются и для чего нужны? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|