Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем нужен базовый класс? / 25 сообщений из 27, страница 1 из 2
22.02.2017, 10:25
    #39408920
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
Гуру ООП поясните на примере.
Допустим у меня есть 3 разных веб-камеры, нужно написать ООП библиотеку через которую программа сможет управлять любой камерой, показывать изображение и звук.

1 камера - транслирует видео поток в MJPEG, аудиопоток в MP3, подключена через Ethernet.
2 камера - видео в H.264, аудипотока нет, подключена через телефонный модем.
3 камера - видео в H.263, аудиопоток в AXIS, подключена через сотовый модем.

Какая должна быть структура классов? Нужен ли тут базовый класс?
...
Рейтинг: 0 / 0
22.02.2017, 10:53
    #39408942
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
SoundService...
VideoService...
CommService...

Camera - https://ru.wikipedia.org/wiki/Фасад_(шаблон_проектирования)
...
Рейтинг: 0 / 0
22.02.2017, 11:15
    #39408961
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
EoltДопустим у меня есть 3 разных веб-камеры, нужно написать ООП библиотеку
если библиотека для 3-х конкретных камер, то какая разница как её писать.
задача слишком примитивная.

А вот если обобщенная библиотека, где можно регистрировать разные камеры, то общий интерфейс обдумать нужно. И реализовывать этот интерфейс для каждой камеры.
...
Рейтинг: 0 / 0
22.02.2017, 11:22
    #39408971
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
SiemarglSoundService...
VideoService...
CommService...

Camera - https://ru.wikipedia.org/wiki/Фасад_(шаблон_проектирования)

Прикольно! SoundService...VideoService...CommService... - это отдельные классы?

ZyK_BotaNесли библиотека для 3-х конкретных камер, то какая разница как её писать.
задача слишком примитивная.

А вот если обобщенная библиотека, где можно регистрировать разные камеры, то общий интерфейс обдумать нужно. И реализовывать этот интерфейс для каждой камеры.

Камер может быть хоть 300 разных типов и производителей, три штуки это чтобы мне проще понять было. Как все спроектировать с точки зрения ООП )) Потребитель контента - программа должна получать видео и звук, и возможное управление.
...
Рейтинг: 0 / 0
22.02.2017, 11:28
    #39408979
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
EoltПотребитель контента - программа должна получать видео и звук, и возможное управление.
Вот и оформи интерфейс, через который можно получать видео, звук и управлять одной камерой.

Дальше реализовываешь этот интерфейс, если реализация сильно отличается.

Если же есть общие шаблоны алгоритмов, то возможно шаблонный метод пригодится(абстрактный класс, где камеро-зависимые методы абстрактные), а общие для всех камер методы, описаны через них.
...
Рейтинг: 0 / 0
22.02.2017, 11:46
    #39408996
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
А зачем тут ООП? Видеохостинги следует на Erlang писать :)
...
Рейтинг: 0 / 0
22.02.2017, 11:47
    #39408997
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
skyANAВидеохостинги следует на Erlang писать :)
чем тебе акторы, не объекты?
...
Рейтинг: 0 / 0
22.02.2017, 11:54
    #39409007
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
skyANAА зачем тут ООП? Видеохостинги следует на Erlang писать :)

это не видеохостинг, а программа управления оборудованием, поэтому пишется на C#
...
Рейтинг: 0 / 0
22.02.2017, 12:04
    #39409024
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
Значит как я понимаю, делаю интерфейс INT_CAM, в котором описываю методы управления камерой, отделенный от реализации.
Затем пишу класс для каждой камеры, в которой реализую интерфейс INT_CAM.
Получаю в итоге паттерн Фасад.

Все верно?
...
Рейтинг: 0 / 0
22.02.2017, 12:09
    #39409034
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
EoltПолучаю в итоге паттерн Фасад.
нет. фасада никакого не надо, если в системе не известное кол-во камер.

а вот если есть общие алгоритмы работы каких-то из методов, то возможно шаблонный метод пригодится. https://ru.wikipedia.org/wiki/Шаблонный_метод_(шаблон_проектирования)
...
Рейтинг: 0 / 0
22.02.2017, 13:09
    #39409106
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
EoltSiemarglSoundService...
VideoService...
CommService...

Camera - https://ru.wikipedia.org/wiki/Фасад_(шаблон_проектирования)

Прикольно! SoundService...VideoService...CommService... - это отдельные классы?
....
Отдельные иерархии классов
...
Рейтинг: 0 / 0
27.02.2017, 08:54
    #39410595
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNskyANAВидеохостинги следует на Erlang писать :)
чем тебе акторы, не объекты?
можно и так спросить: "чем тебе функции не объекты?" :)
...
Рейтинг: 0 / 0
28.02.2017, 19:45
    #39411973
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
skyANAZyK_BotaNпропущено...

чем тебе акторы, не объекты?
можно и так спросить: "чем тебе функции не объекты?" :)
не имеют состояния.
функция - банальное отображение одного множества в другое.

т.е. если функция и объект, то не полноценный, а очень частный случай.

а у актора и состояние, и взаимодействие с внешним миром.
...
Рейтинг: 0 / 0
28.02.2017, 20:02
    #39411996
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNт.е. если функция и объект, то не полноценный, а очень частный случай.
что есть полноценный объект?
...
Рейтинг: 0 / 0
28.02.2017, 20:23
    #39412002
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNне имеют состояния.по разному бывает то
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include <iostream>

void callcounter()
{
   static int count_of_call = 0;
   count_of_call++;
   std::cout << "Меня вызвали уже " << count_of_call << " раз. Ы! :)" << std::endl;
}
...
Рейтинг: 0 / 0
01.03.2017, 07:34
    #39412113
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNskyANAпропущено...

можно и так спросить: "чем тебе функции не объекты?" :)
не имеют состояния.



функции еще как имеют состояние
...
Рейтинг: 0 / 0
01.03.2017, 10:00
    #39412178
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
MasterZivфункции еще как имеют состояние
изменяемое? оО
тогда это не функции.
...
Рейтинг: 0 / 0
01.03.2017, 23:28
    #39412873
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNMasterZivфункции еще как имеют состояние
изменяемое? оО
тогда это не функции.
strtok это функция из <string.h> и имеет состояние
...
Рейтинг: 0 / 0
01.03.2017, 23:32
    #39412875
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
tchingizZyK_BotaNпропущено...

изменяемое? оО
тогда это не функции.
strtok это функция из <string.h> и имеет состояние
значит не функция (:
...
Рейтинг: 0 / 0
02.03.2017, 00:19
    #39412886
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNзначит не функция (:
ФП разрушает мозг
...
Рейтинг: 0 / 0
02.03.2017, 00:36
    #39412890
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ИзопропилZyK_BotaNзначит не функция (:
ФП разрушает мозг
дополняет и упорядочнивает знания, понимание и умение.
...
Рейтинг: 0 / 0
04.03.2017, 21:51
    #39414173
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNзначит не функция (:
У сишников каша в понятиях, они до сих пор путаются даже в различиях между структурой и классом.
...
Рейтинг: 0 / 0
05.03.2017, 07:36
    #39414221
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
вообще базовый класс нужен чтобы выделить общие свойства всех подобных объектов и иметь возможность оперировать с ними одинаковыми образом.

Допустим у меня есть 3 разных веб-камеры, нужно написать ООП библиотеку через которую программа сможет управлять любой камерой, показывать изображение и звук.

вот для этого и нужен базовый класс. Даже возможно несколько, для камер, для изображения, и для звука.

1 камера - транслирует видео поток в MJPEG, аудиопоток в MP3, подключена через Ethernet.
2 камера - видео в H.264, аудипотока нет, подключена через телефонный модем.
3 камера - видео в H.263, аудиопоток в AXIS, подключена через сотовый модем.

Какая должна быть структура классов? Нужен ли тут базовый класс?

ну, какая конкретно структура нужна, это зависит от многого, от постановки задачи и целей проектирования. Это ты должен сам уже делать.
Нужно видимо несколько базовых классов, как я уже написал. Но вот способ подключения за тебя уже сделали совершенно прозрачным для приложения на сетевом уровне, для спорта подключения базовый класс делать не нужно, везде будет TCP или UDP socket.

Возможно, нужны будут классы для установки соединения, но само соединение будет одно и то же.
...
Рейтинг: 0 / 0
06.03.2017, 00:15
    #39414430
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
softwarerZyK_BotaNзначит не функция (:
У сишников каша в понятиях, они до сих пор путаются даже в различиях между структурой и классом.
ой, тока не надо про кашу
...
Рейтинг: 0 / 0
06.03.2017, 02:19
    #39414445
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зачем нужен базовый класс?
ZyK_BotaNMasterZivфункции еще как имеют состояние
изменяемое? оО
тогда это не функции.

Свои параметры на входе ...
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем нужен базовый класс? / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]