powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
25 сообщений из 53, страница 2 из 3
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007388
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker
у них реализация не связана с контрактом. Т.е. если у вас есть код работы с каким-то интерфейсом, то чисто по коду вы никак не узнаете, что происходит на самом деле. Вам придётся запустить программу, чтобы увидеть какая именно из реализаций интерфейса будет передана/использована.

Как раз нужна "виртуальность" для Класса целиком(а не для отдельных методов).
Еще Вы указали на серьезную проблему: Как проще ориентироваться в коде с “виртуальными” Классами?
“Запускать и смотреть” ... боюсь, не подходит. Придется искать какую-то методику или полезное CASE-средство, типа Rational Rose ?
Спасибо.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007389
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer

Как правило, если хорошо подумать над архитектурой, количество интерфейсов стремительно уменьшается, а управляемость и прозрачность приложения значительно увеличивается.

Задача такова, что приходится рассматривать в т.ч. "концепцию к архитектуре" (а про саму архитектуру - это отдельная тема, она кажется проще)
softwarer

Я встречал мало задач, в которых были бы нужны или удобны "интерфейсы ради интерфейсов".

Т.е. встречали. Вам повезло. А мне приходится продолжить поиск ...
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007390
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Куда правильнее сделать ProgressNotification, и пусть на него подписывается хоть ProgressBar, хоть LogWriter.

Как правильно называется эта технология Notification/Подписки ... ?
М.б. есть какая-нибудь ссылка почитать?
Спасибо.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007416
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st
ziv-2014
Еще есть safecall и автоматическая обработка ошибок.

Я правильно понял, что safecall - это надстройка над stdcall?
Спасибо.

Да, но удобная надстройка в плане обработки ошибок.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007417
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,

Это паттерн «издатель-подписчик»
Стандартной реализации в Delphi нет, есть в Qt (сигналы-слоты), но тоже сомнительное удовольствие
Придётся пилить вручную, разруливать синхронизацию и т.д.

Уйти от интерфейсов в сторону издателя-подписчика - это что-то новенькое
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007420
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU

Это паттерн «издатель-подписчик»

Имелось ввиду не шаблон, а работающая концепция.
Вроде, хорошая идея - соединить объекты в одной точке(не надо бегать по коду, искать зависимости). Отключил один, подключил другой.
Но, м.б. нюансы реализации ... вот что интересно
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007425
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,

Я же написал, что нет
Самое близкое это TAction
Но они на то и паттерны, что реализуются под конкретную задачу
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007445
pvv.pas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU

...
Для плагинной системы средней сложности тоже нет альтернатив.
...

Есть. Абстрактные классы с абстрактными методами.

SOFT FOR YOU

...
Конечно интерфейсы используют для ARC в первую очередь. Здесь так же нет альтернатив.
...

Есть. Умные указатели на managed records.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007447
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pvv.pas

Есть. Абстрактные классы с абстрактными методами.


Плагины подразумевают, что они могут быть написаны на разных языках
Список VMT различается не только для разных языков, но и для разных версий Delphi
Т.е. сделать можно, но это костыль. А интерфейсы - вещь в целом стандартизированная, как минимум в пределах Windows точно

pvv.pas

Есть. Умные указатели на managed records.


Они появились в 10.4
Ну и виртуальных методов нет, значит невозможна универсализация
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007449
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU

Т.е. сделать можно, но это костыль. А интерфейсы - вещь в целом стандартизированная, как минимум в пределах Windows точно

Интерфейсы в делфи стандартные для всех платформ. Вся FMX написана на интерфейсах.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007450
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pvv.pas

...
Есть. Абстрактные классы с абстрактными методами.
...

Абстрактные классы - это вертикальное масштабирование, интерфейсы - горизонтальное.
Для плагинов у классов больше минусов, а у интерфейсов больше плюсов (разделение менеджеров памяти, множественное наследование, поддержка разными языками программирования).
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007452
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st
Как проще ориентироваться в коде с “виртуальными” Классами?
“Запускать и смотреть” ... боюсь, не подходит. Придется искать какую-то методику или полезное CASE-средство, типа Rational Rose ?

Хз. Как минимум - можно в комментариях указывать имя типичного реализующего объекта с опциональным списком других возможных кандидатов.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007461
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU
Это паттерн «издатель-подписчик»
Стандартной реализации в Delphi нет, есть в Qt (сигналы-слоты)

System.Messaging
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007469
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Да, ты прав
Только я не вижу синхронизации там
Но идея неплохая
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007608
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey
SOFT FOR YOU
Это паттерн «издатель-подписчик»
Стандартной реализации в Delphi нет, есть в Qt (сигналы-слоты)

System.Messaging

Это ж .нет, в дельфях не нашел
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007656
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Kazantsev Alexey
пропущено...
System.Messaging

Это ж .нет, в дельфях не нашел

http://docwiki.embarcadero.com/CodeExamples/Sydney/en/System.Messaging_(Delphi)
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007658
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal
Это ж .нет, в дельфях не нашел

Начиная с XE6.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007747
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Kazantsev Alexey
Начиная с XE6.

Тьфу ты блин. Смотрел в хелпе от 10.3, через поиск не находит, в содержании нет, а в статье про System прошерстил только Unit scopes, не дошел до Units
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007961
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор http://docwiki.embarcadero.com/CodeExamples/Sydney/en/System.Messaging_(Delphi) меня вот всегда интересовало эти косорукие сами пользуются тем, что пишут или нет - и так куда не взглянешь
использовать генерики, что бы потом приводить типы - это верх .......
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40007998
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan),

Поглядел немного код, я правильно понимаю, что если мне надо будет передавать TMessage<UnicodeString> в разных местах в смысле
источник1 должен посылать в приёмник1, источник2 должен посылать в приёмник2
то получать я их буду в обоих подписчиках? И надо оборачивать UnicodeString чтоб тип был разный. Сделали бы хоть по ID'шнику.
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40008003
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
istrebitel,

{ TMessageManager can have many independent instances , but it
maintains one global instance accessible by TMessageManager.DefaultManager }
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40008116
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
istrebitel
kealon(Ruslan),

Поглядел немного код, я правильно понимаю, что если мне надо будет передавать TMessage<UnicodeString> в разных местах в смысле
источник1 должен посылать в приёмник1, источник2 должен посылать в приёмник2
то получать я их буду в обоих подписчиках? И надо оборачивать UnicodeString чтоб тип был разный. Сделали бы хоть по ID'шнику.
в принципе, не особо проблема, для примитивных типов можно завести свой тип - TSomeType = type ...;

а вот приводить типы каждый раз это что-то с чем-то
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40008419
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
в принципе, не особо проблема, для примитивных типов можно завести свой тип - TSomeType = type ...;

а вот приводить типы каждый раз это что-то с чем-то

А вы предлагаете что?
Variant или TValue?
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40008458
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

было бы логично и правильно

Код: pascal
1.
procedure(const Sender: TObject; const M: TMessage<UnicodeString>)
...
Рейтинг: 0 / 0
Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
    #40008548
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где же мальчик? (С)
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Интерфейсы. Сравнение ARC и Pure. Какие предпочтения ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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