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

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

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

10 ответов

18 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта