Добавить комментарий

Delphi

Property в интерфейсах

Обычная мотивация для такого подхода: хочется описать свойство, а функции оставить личным делом реализующего класса.

function GetOnProgress: T_OnProgress; //

property OnProgress: T_OnProgress read GetOnProgress; 

Как оставить в интерфейсе только property?
Ответ: Никак. angel Но, и незачем.

В классе свойство даёт возможность укрыть атрибут класса от прямой правки, сделать доступным только через методы.
Но через интерфейс такого доступа к полям нет в принципе, интерфейс декларирует только методы.

Получается, ничего плохого в доступности методов нет.

type
  IAny = interface
           function GetP: TP;
           property SomeP : TP read GetP;
         end;
...
var
   any : IAny;
   locP: TP;
...
  locP := any.SomeP; // просто один из вариантов записи.
  // locP := any.GetP - ничем не хуже, и доступность функции через интерфейс не должна нас беспокоить.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.