Ну давайте пошерстим вики...
Цитата:
На их основе участник форума Галков привёл пример....
Мне думается лучше конкретно и точно указать, что не я Автор примера-то. Двусмысленность может получиться - не все же по ссылке в топик сходят.
Это код из ActiveReport. Да и настороженно я отношусь к упоминанию фамилии в суе.
НО
это не более чем мнение, а решение, безусловно, принадлежит Автору статьи.
Цитата:
Достаточно распространённый прием в Компонентном Паскале
Мне думается, что можно бы и указать, что это реализация одного из паттернов от банды 4-х (Command кажется - не помню точно). И рассказать, что они-то не обременены были расположением объектов именно в хипе...
И что применение их паттернов в языках с GC имеет некоторые особенности.
Это я к тому, что если вики читает свежий человек - правдивые подробности не помешают
Цитата:
При таком взгляде делегат можно представить как пару из процедурной переменной и указателя на объект, типа:: RECORD handler: PROCEDURE(obj: ANYPTR; ..другие параметры..); obj: ANYPTR) END. Объект, владеющий такой парой, может инициировать для другого объекта операцию.
Мне думается, что в этом разделе следует поподробнее разжевать, почему используется тип ANYPTR, а не, скажем, Desk. Втолковать новичку, на каком уровне абстракции ему следует находиться, проектируя таковые схемы.
Мне думается, что стиль "
профессионалы объясняют для профессионалов" - не очень правильный для вики... У меня, к примеру, есть свое личное отношение к таковым "профессионалам"
Цитата:
Вышеприведённый пример слишком «игрушечный». На самом деле, при соединении объектов нужно пересылать сигналы разных типов, заранее неизвестных.
Модифицируем пример, чтобы показать более общий подход.
Абсолютно неубедительно.
Вы же русским языком написали
handler: PROCEDURE(obj: ANYPTR; ..другие параметры..) (пардон - английским).
Кто определил сигнатуру хэндлера ??? разработчик элемента (в нашем случае - батона). Точка.
Разработчик элемента определил железно сигнатуру входных разъемов - тут почему-то никто дискомфорта не испытал.
Ровно также, железно, он определяет сигнатуру своих выходных разъемов.
А разработчик системы создает свою промежуточную логику, принимая цоколевки всех разъемов, как незыблемую данность.
Где проблемы ??? Где игрушечность, спрашивается ???
Но внутренним чувством я понимаю, что аргументы для перехода от "нервных связей" к "химии" (которая очень увлекательно будет выглядеть для системы из пары сотен объектов... а главное - понятно) - ЕСТЬ.
Ну сохранила Природа в живых организмах Химию. Несмотря на появление нервных связей. Как в виде безусловных рефлексов, так и в виде более продвинутом - условных. Не доказательство, но очень серьезный повод задуматься.
Так давайте честно искать эти аргументы, а не декларировать записи на скрижалях.
Нельзя писать вики так, чтобы зашедший туда человек мог сказать: "Чего Вы мне фуфло гоните!!!"