172 похожих чатов

Короче херня полная всю упирается в прототипы которые я бы

хотел не дублировать и точно статически не связывать. То есть логика такая. Каждая библиотека это полностью автономный объект. Его реализация зависит исключительно от разработчика. Классы не подходят потому, что слишком много лишних движений. Загружаем, импортируем, вопрос, что? Класс как называется? А если несколько их там? Хорошо знаем имя, проверяем содержит интерфейс и что если он не содержит? Ты сделал кучу действий чтобы проверить наследует он интерфейс, Карл ты проделал целый путь чтобы просто сказать что ты нам не подходишь? 😂

10 ответов

10 просмотров

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

У меня таких вопросов не возникает. Если мне надо сделать, я делаю. И связь нескольких программ я делал уже. Мало того, у меня программа в Линуксе связывалась с программой в винде и давала ей указания. Если мне понадобятся плагины, то я скорее всего через класс это сделаю. Думаю, что это отличное решение будет.

Egor-Tsyganchuk Автор вопроса
Тающий звук
Интерфейсы для этого и нужны, чтобы гарантировать,...

Ну ты же его загрузишь правильно? Ты загрузил библиотеку и после импортируешь класс с неким именем, так? И после этого только проверишь содержит от класс или нет?

Даже если проверку надо делать на то наследует ли класс интерфейс, то это одна строчка кода. Тебе не надо проверять все функции в классе, тебе надо проверить лишь наследует он интерфейс или нет. Если ты реализуешь без класса, через функции, то вот тут уже гарантий нет. Как ты будешь проверять, есть ли в плагине нужная функция ? Это намного больше кода надо писать для проверки всего этого

Egor Tsyganchuk
Ну ты же его загрузишь правильно? Ты загрузил библ...

При наследовании интерфейса, компилятор сам проверит в классе, чтобы были реализованы все функции из него. И тому, кто пишет плагин выдаст ошибку, если что-то не будет реализовано. Это хороший контроль за тем, чтобы плагин был написан верно. При реализации через функции контроля никакого не будет.

Egor-Tsyganchuk Автор вопроса
Тающий звук
Даже если проверку надо делать на то наследует ли ...

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

Egor Tsyganchuk
Ну хорошо какой ты интерфейс себе представляешь ко...

Смотря что расширять, это слишком обширное понятие

Egor Tsyganchuk
Ну хорошо какой ты интерфейс себе представляешь ко...

Ну например при реализации торгового терминала, делаешь коннекторы к биржам в виде отдельных плагинов. В интерфейсе реализуешь функции, которые должны реализовывать классы коннекторов, такие как "Получить список интсрументов", "Получить котировки по инструменту", "Открыть позицию по инструменту" и т.д. Потом делаешь например коннектор к бинансу или к московской бирже. Реализуешь его во внешней библиотеке, класс там наследуешь от этого интерфейса. Потом подключаешь коннектор для новой бирже к своему терминалу и видишь всё, что тебе нужно

Egor-Tsyganchuk Автор вопроса
Тающий звук
Ну например при реализации торгового терминала, де...

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

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта