Вышел Free Pascal 2.1.4! (комментарии)
Это сообщение сгенерировано автоматически.
Потестим...
> * Interface delegation
А я думал этого в обозримом будущем не будет и не стал использовать.:)
> Interface delegation
А что это?
property MyInterface: TMyObject read FMyObject implements IMyInterface;
это делегирует реализацию интерфейса IMyInterface объекту FMyObject класса TMyObject. Причем от TMyObject не требуется наследоваться от чего-либо. Надо лишь чтобы у него была реализация, т.е. сигнатуры методов совпадали с реализуемым интерфейсом.
Конечно можно прописывать все обращения ко внутреннему объекту вручную в методах, но писанины получится много до маразма, да и модифицировать сложно.
Так что interface delegation это определенно вещь и далеко не просто синтаксический сахар. С ним можно отказаться от наследования реализации вообще.
>Причем от TMyObject не требуется наследоваться от чего-либо.
То есть это так же как в дельфях, только не надо писать
TMyObject = class(TInterfacedObject, IMyInterface)...end
а просто
TMyObject = class...end
Я прав?
Нет, в дельфях тоже не надо, ибо делегация интерфейсов там давно есть.
Mirage
Делегация то есть, но делегат все равно должен быть унаследован от TInterfacedObject и поддерживать заданный интерфейс явно. Может мы о разных вещах говорим? Я об этом
> Generics
Неужели?!
DROnik, ну да, всё правильно, только он не обязательно должен быть унаследован от TInterfacedObject, можно ведь просто воспользоваться делегированием.
>только он не обязательно должен быть унаследован от TInterfacedObject можно ведь просто воспользоваться делегированием.
А пример можно?
DROnik: Не должен он поддерживать никаких интерфейсов явно. Я когда объяснял что это набросал пример в дельфях и скомпилировал. Повторять лень.:)
А.. блин. Точно не нужно. Всё таки я не то имел в виду.
З.Ы. Во всем жара виновата:)
А статья странная. Впрочем, о статье в соотв. теме.
Тема в архиве.