Інтерфейси без iid (guid)

Інтерфейси без IID (GUID). Як працювати в Delphi7?

Підкажіть, що почитати на тему створення інтерфейсів БЕЗ IID (GUID) в Delphi7.
Потрібна детальна інформація про внутрішню механіку роботи об'єктів, що реалізують такі інтерфейси (від порядку інстанцірованія до взаємодії).
(Це має бути сильно відрізняється від реалізації в Delphi3. Я правильно думаю?)

Інформація бажана в електронному вигляді.

Інтерфейси без IID робити можна. У реалізації нічим не відрізняється від таких же інтерфейсів, але з IID. Різниця тільки в тому, що їх запитувати не можна. Отримати ж такий інтерфейс можна тільки безпосередньо, приведенням екземпляра класу через as.

А в чому радість інтерфейсу без IID? Suppoorts не використаєш (що вже величезне незручність).

Відповідно, для класів, що реалізують методи таких інтерфейсів, можна не турбуватися про "другий" лінії життя - лінії на основі підрахунку посилань, а повністю покластися на "ручне" управління часом життя об'єкта (Free () викликати, наприклад, незалежно від використання інтерфейсу) .
Я правий?

Може є якісь відмінності і нюанси роботи з такими інтерфейсами Delphi7 від попередніх версій (6.0 і 5.0, наприклад)?


> Відповідно, для класів, що реалізують методи таких
> Інтерфейсів, можна не турбуватися про "другий" лінії
> Життя - лінії на основі підрахунку посилань, а повністю
> Покластися на "ручне" управління часом життя
> Об'єкта (Free () викликати, наприклад, незалежно від
> Використання інтерфейсу).
> Я прав?

Ніщо не заважає організувати таку ж поведінку (ручне управління часом життя) і для інтерфейсів з IID.
Так що як і раніше не видно сенсу.

Або ти просто їх (Гуїдо) економиш, боїшся що комусь не вистачить? )))

За замовчуванням їх ззовні і не бачено. Щоб їх стало видно, треба зробити певні зусилля.

> У теорії при кожному запиті інтерфейсу з IID
> Відбувається збільшення лічильника посилань на об'єкт

Подивися в модулі System, клас TinterfacedObject.
Подивися як там реалізовані методи _Addref і _Release.
Ось саме так, вручну, і реалізовується автоматичне керування часом життя об'єкта.
І ніщо не заважає тобі реалізувати ці метди зовсім інакше, IID тут ні при чому.
Єдине, що буде забезпечено дійсно автоматично, це виклики _Addref і _Release.
ЇХ викликає компілятор, а що при їх виклик робити - чи вважати посилання, або не брати до уваги, вирішуєш вже ти

Пам'ять: 0.74 MB
Час: 0.05 c

Схожі статті