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

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

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

10 ответов

14 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Всем привет. Сейчас я изучаю erlang по книге Erlang and OTP in action. Дошел до главы где реализуется первый gen server на примере tcp rpc сервера. Меня очень сильно смутил ко...
Freezing Death
9
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
Подскажите... Есть ли название у способа разработки кода, в котором: сперва пишут минимальную рабочую структуру: Напр. ввод, обработка, вывод, контроль. Потом эту структуру д...
Budemposmotret
6
В дизассемблере вижу, что строки пихают в регистры через lea, почему так, а не через mov?
Oleg
8
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
Коллеги, а не могли бы вы подсказать, как происходит оптимизация кода при выполнении кода julia? (Точнее, как управлять уровнем оптимизации, аналогично LLVM/GCC). Потому что...
Илья Гаража
5
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Карта сайта