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

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

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

10 ответов

17 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта