ООП
От: Alexeev Nickolay Россия  
Дата: 23.06.06 08:21
Оценка:
Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?
Re: ООП
От: Андрей Коростелев Голландия http://www.korostelev.net/
Дата: 23.06.06 08:37
Оценка:
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Интерфейс — это публично доступная спецификация протокола объекта.
Класс же является одним из способов задания интерфейса.
-- Андрей
Re: ООП
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.06.06 08:38
Оценка: +1 :)))
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Ваш спор является частным случаем процесса познания Дао программирования.

Сами ведь спрашивали, кто что думает


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: ООП
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 23.06.06 08:41
Оценка:
Alexeev Nickolay,

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Несмотря на тесную взаимосвязь, вещи несравнимые концептуально. Я определяю "интерфейс" так: интерфейс определяет протокол, который может быть реализован в классе (классах).

Возьмём С++. Интерфейс _является_ классом (на уровне компилятора).
Возьмём Java. Интерфейс не является классом, а представляет самостоятельную сущность, не равную классу.
Возьмём Эрланг. Интерфейсы есть, а классов нет.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[2]: ООП
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 23.06.06 08:53
Оценка: :))) :)))
Здравствуйте, eao197, Вы писали:

AN>>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


E>Ваш спор является частным случаем процесса познания Дао программирования.


Казалось бы, при чем здесь Nemerle?
http://www.smalltalk.ru | << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[2]: ООП
От: S-SH Россия http://shmakov.ru/
Дата: 23.06.06 09:07
Оценка: :)
LCR>Возьмём Java. Интерфейс не является классом, а представляет самостоятельную сущность, не равную классу.

В: Зачем нужны интерфейсы в Java?
О: Чтобы реализовать множественное наследование классов
IMHO. смайлики добавить по вкусу.
Re[3]: ООП
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 23.06.06 09:50
Оценка: :))
S-SH,

SS>В: Зачем нужны интерфейсы в Java?

SS>О: Чтобы реализовать множественное наследование классов

А в Эрланге, надо думать, чтобы реализовать множественное наследование модулей? Или функций? А в CLOS интерфейсы конечно же для того, чтобы реализовать множественное наследовение S-выражений
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re: ООП
От: Андрей Хропов Россия  
Дата: 23.06.06 09:52
Оценка:
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?

Ну такие вопросы на собеседовании задавать надо.

Интерфейс — спецификация (определенный набор методов, которые можно вызывать из внешних программ),
которую поддерживает объект.
Класс — некий объект с данными и поведением, реализующимся через методы.

Говорят, что класс реализует интерфейс, если он поддерживает все методы соответствующие данному интерфейсу. Для лучшего понимания
В Java, например, есть разные слова
implements: реализует интерфейс
extends: расширяет функционaльность базового класса.

Другое дело, что в C++ смешали эти понятия, и вышло так что вроде бы все классы.
На самом деле если в абстрактном классе одни чисто виртуальные методы (то есть он чисто абстрактный) — это и есть интерфейс,
если же в нем еще есть конкретные код и данные — это помесь интерфейса с миксином.
Вот такой язык .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: ООП
От: S-SH Россия http://shmakov.ru/
Дата: 23.06.06 10:09
Оценка:
LCR>А в Эрланге, надо думать, чтобы реализовать множественное наследование модулей? Или функций? А в CLOS интерфейсы конечно же для того, чтобы реализовать множественное наследовение S-выражений

Вы лучше меня знаете, вы и скажите, прошу вас, зачем в Эрланге интерфейсы в отсутствии классов?
Заодно скажите, зачем они в CLOS?
IMHO. смайлики добавить по вкусу.
Re: ООП
От: Трурль  
Дата: 23.06.06 10:16
Оценка: +1 :))) :)))
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Я вот чего думаю. Класс это частный (сферический) случай коня, а интерфейс — частный случай пальто.
Re: ООП
От: denisio_mcp  
Дата: 23.06.06 11:11
Оценка:
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Это как сравнивать оригинал с фотографией. Интерфейс не существует. Существует экземпляр класса. А интерфейс это всего лишь способ доступа до него и его данных.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: ООП
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.06.06 18:26
Оценка:
Здравствуйте, Alexeev Nickolay, Вы писали:

AN>Возник тут на работе спор: является ли интерфейс частным случаем класса, в процессе спора появлялись даже мнения что класс это частный случай интерфейса, кто чего думает?


Термин интерфейс прегружен. Уточни что ты имешь в виду. Интерфейс в Ява или .NET?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: ООП
От: Mamut Швеция http://dmitriid.com
Дата: 24.06.06 18:37
Оценка: 5 (2)
LCR>>А в Эрланге, надо думать, чтобы реализовать множественное наследование модулей? Или функций? А в CLOS интерфейсы конечно же для того, чтобы реализовать множественное наследовение S-выражений

SS>Вы лучше меня знаете, вы и скажите, прошу вас, зачем в Эрланге интерфейсы в отсутствии классов?

SS>Заодно скажите, зачем они в CLOS?

Попробуя я. В Эрланге интерфейсы — это публичные функции того или иного модуля. Любой модуль в Эрланге — это классический черный ящик, выставляющий наружу только минимальный интерфейс, за который его можно дергать. Доступа к внутренним функциям в модуле получить программным способом невозможно. А внутри модуля — сплошная функциональщина и ни единого класса Да и модули общаются друг с другом с помощью отсылки асинхронных сообщений.

Это если я все правильно помню, конечно
От чего, от чего, от чего тах хорошо?
Потому что кто-то любит программиста
<< RSDN@Home 1.2.0 alpha rev. 647>>


dmitriid.comGitHubLinkedIn
Re[6]: ООП
От: Cyberax Марс  
Дата: 24.06.06 19:23
Оценка: 4 (1)
Mamut wrote:
> Да и модули общаются друг с другом с помощью отсылки
> асинхронных сообщений.
Причем ТОЛЬКО путем отсылки сообщений. Других методов общения нет — а
значит нет и мест разделения ресурсов между потоками => нет
race-condition'ов.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[6]: ООП
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 26.06.06 08:11
Оценка: 9 (1) +2
Mamut,

M>Попробуя я. В Эрланге интерфейсы — это публичные функции того или иного модуля. Любой модуль в Эрланге — это классический черный ящик, выставляющий наружу только минимальный интерфейс, за который его можно дергать. Доступа к внутренним функциям в модуле получить программным способом невозможно. А внутри модуля — сплошная функциональщина и ни единого класса


Здесь всё правильно. +1.

M>Да и модули общаются друг с другом с помощью отсылки асинхронных сообщений.


А здесь не совсем. Процессы общаются друг с другом с помощью асинхронных сообщений. Соответствие между процессами и модулями может быть разным, естественно.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[7]: ООП
От: Mamut Швеция http://dmitriid.com
Дата: 26.06.06 08:24
Оценка:
M>>Да и модули общаются друг с другом с помощью отсылки асинхронных сообщений.

LCR>А здесь не совсем. Процессы общаются друг с другом с помощью асинхронных сообщений. Соответствие между процессами и модулями может быть разным, естественно.


Это да, это я тормознул
От чего, от чего, от чего тах хорошо?
Потому что кто-то любит программиста
<< RSDN@Home 1.2.0 alpha rev. 647>>


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.