|
51 / 51 / 14
Регистрация: 12.01.2013
Сообщений: 779
|
|
.NET 4.x Интерфейсы зачем их использовать15.02.2013, 20:28. Показов 16311. Ответов 35
Извиняюсь что создал тему, просто не могу понять зачем .
Сейчас учу интерфейсы, и не могу понять зачем их использовать, если все равно реализация идет в классе ? То есть даже если применять интерфейсы к трем классам то все равно надо реализовывать функции в этих трех классах. Может вы мне проясните в чем дело и как ими пользоваться ?
0
|
|
| 15.02.2013, 20:28 | |
|
Ответы с готовыми решениями:
35
Зачем нужны интерфейсы? |
| 08.05.2013, 18:50 | |
|
0
|
|
|
Master of Orion
|
||||||
| 08.05.2013, 19:03 | ||||||
|
Exerion, Ну так адаптер нас спасет! Только добавим метод падения:
2
|
||||||
| 08.05.2013, 19:10 | |
|
Не по теме: Exerion, такая форма полета называется "крутое пике"
0
|
|
|
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
|
|
| 08.05.2013, 19:11 | |
|
Я же говорил что кирпич хорошо летает)
0
|
|
|
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 3
|
|
| 01.11.2015, 14:27 | |
|
То есть, из ваших слов и примеров выходит только то, что применение интерфейсов необходимо лишь, когда в проекте участвуют несколько разных людей и чтобы не было разницы в понимании наполнения того или иного класса кто-то предписывает им использовать определённые интерфейсы, которые жёстко задают необходимое поведение класса. Так?
А если же программист один, то зачем ему интерфейсы? Он ведь и сам знает, что где ему нужно реализовать, где что не упустить, какой метод или свойство внедрить. Правильно я понял?
0
|
|
|
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
|
||
| 01.11.2015, 18:43 | ||
|
Да, всё правильно.
На деле "один программист" бывает только у себя дома, когда он пишет что-то для себя. Даже в маленьком проекте могут участвовать 2-3 программиста. И им не обязательно продумывать интерфейсы и структуру классов. Только дальше этого офиса проект не выйдет. Создание интерфейсов, как и абстрактных классов, говорит о том, что программист не тупой кодер и может продумывать хоть что-то наперёд. Добавлено через 3 минуты
2
|
||
|
0 / 0 / 0
Регистрация: 23.05.2015
Сообщений: 3
|
||||||
| 19.03.2018, 12:45 | ||||||
|
Еще пара слов о применении интерфейсов.
Не создавая новый объект, можно с помощью только преобразования его типа к другому интерфейсу, изменять видимость (а значит и доступ) к методам и свойствам класса, которых могут быть сотни. И если нет необходимости, объект не будет заряжаться дополнительными методами. Экономится память, увеличивается производительность. Вот небольшой пример:
0
|
||||||
|
10 / 18 / 4
Регистрация: 10.11.2017
Сообщений: 283
|
|
| 12.07.2018, 00:41 | |
|
AceOfSpades, спасибо!
0
|
|
|
629 / 41 / 25
Регистрация: 25.04.2017
Сообщений: 513
|
|||||||
| 26.12.2018, 01:45 | |||||||
0
|
|||||||
|
Администратор
|
|
| 26.12.2018, 09:52 | |
|
0
|
|
|
629 / 41 / 25
Регистрация: 25.04.2017
Сообщений: 513
|
||||||
| 27.12.2018, 15:32 | ||||||
|
OwenGlendower, пытался я пытался,весь интернет облазил, так не хотел сдаваться, но не могу сам это сделать... Возможно решение куда проще, чем я думаю, вот что мне удалось сделать. Может подскажите как правильно и имеет ли место быть мой вариант, если его закончить?
![]()
0
|
||||||
|
Администратор
|
||||||||||||||||
| 27.12.2018, 16:05 | ||||||||||||||||
|
worldandlife, данный прием можно применять (сообсвтенно его можно найти в массивах и в List<T>), но в данной теме речь все-таки об интерфейсах. Тем не менее давай допишем твой вариант.
1) Делегат Comparison можно было и не объявлять - зачем создавать путаницу с одноименным системным типом. 2) Метод CompareByItem в общем виде здесь писать нет необходимости. Пользователи класса сами будут писать нужны метод и передавать ссылку на него. Таким образом
1
|
||||||||||||||||
|
629 / 41 / 25
Регистрация: 25.04.2017
Сообщений: 513
|
|
| 27.12.2018, 19:02 | |
|
0
|
|
|
Администратор
|
|
| 27.12.2018, 19:14 | |
|
worldandlife, точно так же. Ожидается что делегат Comparison<T> возвращает отрицательное значение если первый аргумент "меньше" второго (первый должен идти перед вторым в отсортированной коллекции), положительное если "больше" (должен идти после) и ноль если они равны. Если вопрос был о то как именно сравнивать строки таким образом, то для этого есть метод Compare у строки, а также класс StringComparer.
1
|
|
|
7 / 2 / 0
Регистрация: 19.10.2014
Сообщений: 279
|
|
| 22.04.2023, 05:51 | |
|
0
|
|
|
Супер-модератор
|
||
| 22.04.2023, 09:24 | ||
![]() Но если кратко, то интерфейсы позволяют реализовать нечто вроде множественного наследования.
0
|
||
| 22.04.2023, 09:24 | |
|
Помогаю со студенческими работами здесь
36
Зачем нужны интерфейсы?
Зачем нужны интерфейсы? Зачем упаковывать структуры и объекты в интерфейсы? Опять про интерфейсы. Зачем они? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|