![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Уже не первый раз сталкиваюсь с понятием интерфейс. Полез в википедию, и слегка запутался..
Как я понял бывают com-интерфейсы, API-интерфейсы... А бывают вообще другие интерфейсы. Чем они отличаются между собой? Читая информацию по данной теме, я понял, что интерфейсы представляет ни что иное как класс, только бывает на уровне операционной системы, а бывает на уровне кода внитри программы, верно? |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Всё смешалось: кони, люди. Слово "интерфейс" в программировании имеет много разных значений. В твоём случае (включаю телепата) интерфейс — по сути класс с чисто абстрактными методами, не содержащий полей. Просто во многих языках есть специально такой тип данных, а вот в C++ нет. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
||||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Мне кажется, тебе нужно начать читать книги по программированию для новичков, потому что ты что-то ну совсем ахинею несёшь. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
||||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Да и написал к этому, что в C++ вместо интерфейсов для тех же целей используются классы, содержащие лишь чисто абстрактные функции-члены. При чём тут вообще double или int? Почитай хотя бы вот это: http://ru.wikipedia.org/wiki/Интерфейс_(об...ограммирование) Это сообщение отредактировал(а) NightmareZ - 28.6.2013, 17:59 -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
hoz |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Да я об этом читал:
Странная вещь. Если всё это реализуется, значит всё-таки данная объектная подсистема и есть интерфейс.. По логике.
Я это и всё что там друг на друга ссылается касаемо данной темы щяс и читаю. А про " double или int " я специально уточнил. Так как я Вам цитату приводил выше, странный ответ был. Хотел убедится. Я с Си перешёл на С++, привыкаю. Диковато.. |
||||||
|
|||||||
hoz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Я верно понимаю взаимосвязь API и COM-компонента?
COM-интерфейсы тоже взаимодействуют между собой посредством API ? Тут сказано:
А тут, сказано, что:
Получается, что как компонент с компонентом, так и другое программное приложение взаимодействует с компонентом посредством API ? Это сообщение отредактировал(а) hoz - 28.6.2013, 19:36 |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Вы неверно понимаете смысл слов, который употребляете. Поэтому ответить что-то вразумительное - проблематично. COM-интерфейсы не взаимодействуют между собой посредством API =) Взаимодействуют компоненты, посредством COM-интерфейса, который и являецца API (Application Programming Interface) в данном контексте Добавлено через 2 минуты и 25 секунд Например, когда вы садитесь за машину вы нажимаете педали, крутите руль, шевелите рычагами. Это все (педали, руль, рычаги) - есть интерфейс автомобиля. |
|||
|
||||
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Дело в том, что я так сразу и понял. Но COM-интерфейс и API это же не одно и тоже ? Я просто изучаю этот вопрос, и судя по тому, что читаю, можно подумать, что это тоже самое... Ведь COM-интерфейсы уже используются сравнительно давно, и появились рвньше ежели API. Если всё "связывалось" как нужно, зачем тогда изобретать велосипед и внедрять API?
Ну это я понял, тут логично. Это сообщение отредактировал(а) hoz - 29.6.2013, 12:41 |
|||
|
||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Не путайте теплое с мягким. В чем-то это близкие понятия, но вам надо просто понять что такое API - Это просто набор функций, предоставляемых тем или иным компонентом, частью ОС и т.п. для того, что бы им можно было управлять. Т.е. API - это обобщенное понятие. Соответственно если идти снизу вверх, то мы можем видеть, что разные слои вычислительной системы предоставляют свой API для взаимодействия с ними. BIOS - свой API, очень низкоуровневый Дальше подсистема Драйверов предоставляет свой API для всей остальной ОС Сама ОС предоставляет API уже для программ, которые работают под её управлением Какая-то библиотека программная (например Qt) предоставит вам свой API, что бы вы могли писать программы с её помощью. А COM это просто такой несколько извращенный (абстрагированный) способ выполнить нужную вам задачу, не задумываясь о том, кто же её будет выполнять, без конкретики. Добавлено через 1 минуту и 35 секунд Добавлю на примере рычагов, рычаг может воздействовать не непосредственно на объект управления, а через например систему шестерней, так вот эта система шестеренок будет интерфейсом между рычагом и объектом, которым он управляет. --------------------
pkunzip.zip |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Интерфейс - это некий набор жестких (аппаратура или функции) и мягких (сигналы или протоколы) методов взаимодействия объектов. Например. Есть у нас интерфейс "поток ввода/вывода". У него есть два метода: записать и прочитать. Создать объект состоящий только из этого интерфейса невозможно - непонятно откуда читать и куда писать. Ты чешешь репу и делаешь пройстейшую реализацию - чтение/запись в файл. Для этого ты наследуешься от этого интерфейса и переопределяешь его абстрактные методы и добавляешь свои для открытия и закрытия файла. Через какое-то время у тебя появилась необходимость для ускорения программы в паре сложных мест писать не в файл, а в память. Ты делаешь еще одного наследника от указанного интерфейса... при этом сами функции, использующие поток, тебе менять нет необходимости - интнрфейс общий, отличия только на этапе создания объекта потока.
|
|||
|
||||
akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Интерфейс это грубо говоря среда (инструмент, схема) взаимодействия с объектами и данными.
Процесс абстракции идёт по нарастающей. Сначала данные стали объектами. Схема расширилась. На определенном же уровне абстракции сам интерфейс становится объектом. Тут просто нужно посмотреть с разных абстрактных уровней. Раньше информация не считалась объектом. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Здрастьте... API - это интерфейс прикладного программирования, т.е. вообще интерфейс. и появилось оно (понятие) незнамо когда, скорей всего сразу как начали писать программы состоящие более чем из одного модуля. COM-интерфейс - узкоспециализированная разновидность интерфейса. изобретен мелкомягкими, в конкретном году (точную дату можно найти) и гораздо много позже... Волк и млекопитающее - это не одно и тоже. Просто волк - это млекопитающее, причем и то и другое - живое_сущесто. =))) словарь: Интерфейс - живое_существо. API - млекопитающее COM-интерфейсы - волк. |
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: нет Всего: 9 |
hoz,
Попробую и я пояснить тебе, что такое "интерфейс". Мы, люди, когда хотим воспользоваться чем-то изучаем сначала способы взаимодействия с этим чем-то. В маленьком возрасте нас учили пользоваться ложкой, ручкой, карандашом, книгой и так на протяжении всей нашей жизни мы всегда учимся взаимодействовать с объектами или вспоминаем как с ними взаимодействовать. Когда разработчик "чего-то" хочет рассказать как его разработкой можно взаимодействовать вот тут-то и всплывает понятие "интерфейса". Интерфейс это связь между внешним воздействием изделия во внутреннее состояние. К примеру, набор кнопок на мобильном телефоне это связь внешнего пользователя с внутренними микросхемами, радиопередатчиком и др. Другой пример, мы подходим к банкомату с нашей карточкой, набираем pin-код и "о чудо, о боги" мы получаем деньги(при соблюдении некоторых условий) таким образом кнопки банкомата и лоток приема карточки это части интерфейса банкомата и это все что нам надо знать. Человек специально вводит понятие "интерфейс" что бы достигнуть следующих задач: 1) Если пользоваться изделием будет просто, то считается что интерфейс удачен дальше его можно повторять в других таких же подобных. При этом пользователи не будут жаловаться что надо каждый раз изучать все заново 2) Внутренне состояние Вы имеете право менять как пожелаете, лишь бы оно было согласовано со здравым смыслом. К примеру на нажатие кнопки "вызов" мобильник должен пытаться дозвониться, а не выключаться. Обратимся к программированию. С точки зрения интерфейса, есть два типа программистов: 1) Программисты пользователи 2) Программисты создатели К примеру, когда вы пишите программу с консольным интерфейсом то придумываете как можно вашей программой пользоваться и здесь вы выступаете в роли программиста создателя. Как только ваша программа попала в руки другого программиста он начинает ей пользоваться, пишет скрипты или вызывает в коде своей программы или еще что-то делает. Этот программист выступает как программист пользователь. Вы можете менять внутреннюю логику, к примеру заниматься оптимизацией, рефакторингом еще что-то, а пользователь вашей программы это может и не заметить. Когда вы говорите "При правке кода интерфейс к моего класса не менялся", для другого программиста это означает "Ни одна из функций применяемого класса позволяющая им пользоваться не менялась и мой код должен работать также как и раньше". |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |