ДельфинарийФорум

Вышел Free Pascal 2.1.4! (комментарии)

#0
16:19, 22 мая 2007

Вышел Free Pascal 2.1.4! (комментарии)

Это сообщение сгенерировано автоматически.

#1
16:19, 22 мая 2007

Потестим...

> * Interface delegation

А я думал этого в обозримом будущем не будет и не стал использовать.:)

#2
22:23, 22 мая 2007

> Interface delegation
А что это?

#3
8:03, 23 мая 2007
property MyInterface: TMyObject read FMyObject implements IMyInterface;

это делегирует реализацию интерфейса IMyInterface объекту FMyObject класса TMyObject. Причем от TMyObject не требуется наследоваться от чего-либо. Надо лишь чтобы у него была реализация, т.е. сигнатуры методов совпадали с реализуемым интерфейсом.
Конечно можно прописывать все обращения ко внутреннему объекту вручную в методах, но писанины получится много до маразма, да и модифицировать сложно.
Так что interface delegation это определенно вещь и далеко не просто синтаксический сахар. С ним можно отказаться от наследования реализации вообще.

#4
12:32, 23 мая 2007

>Причем от TMyObject не требуется наследоваться от чего-либо.
То есть это так же как в дельфях, только не надо писать

TMyObject = class(TInterfacedObject, IMyInterface)...end

а просто

TMyObject = class...end

Я прав?

#5
16:39, 23 мая 2007

Нет, в дельфях тоже не надо, ибо делегация интерфейсов там давно есть.

#6
16:51, 23 мая 2007

Mirage
Делегация то есть, но делегат все равно должен  быть унаследован от TInterfacedObject и поддерживать заданный интерфейс явно. Может мы о разных вещах говорим? Я об этом

#7
17:13, 23 мая 2007

> Generics
Неужели?!

DROnik, ну да, всё правильно, только он не обязательно должен быть унаследован от TInterfacedObject, можно ведь просто воспользоваться делегированием.

#8
17:42, 23 мая 2007

>только он не обязательно должен быть унаследован от TInterfacedObject можно ведь просто воспользоваться делегированием.
А пример можно?

#9
17:51, 23 мая 2007

DROnik: Не должен он поддерживать никаких интерфейсов явно. Я когда объяснял что это набросал пример в дельфях и скомпилировал. Повторять лень.:)

#10
18:07, 23 мая 2007

А.. блин. Точно не нужно. Всё таки я не то имел в виду.

З.Ы. Во всем жара виновата:)

#11
18:25, 23 мая 2007

А статья странная. Впрочем, о статье в соотв. теме.

ДельфинарийФорум

Тема в архиве.