Главная » Delphi » Delphi 2006 – Шаблон Proxy (Прокси)

0

Шаблон Прокси подойдет, когда надо эффективно обработать большое количество компактных объектов. Бывают и обратные случаи, когда объектов в программе немного, но каждый требует больших ресурсов, например если объекты — видеоизображения. В таких ситуациях полезно применять шаблон Прокси. Он предоставляет интерфейс, лишь внешне схожий с оригинальным объектом. Ресурсоемкие операции выполняются только при прямом к ним обращении. В остальных случаях выполняются косметические действия или предоставляется на выполнение код нужных методов. Кроме того, в Прокси- методы обычно встраиваются дополнительные средства контроля, например, за правами пользователя, наличием ресурсов и т.п. (рис. 7.13). Прокси-интерфейс в данном шаблоне назван Subject.

Subject = interface

function SampleMethod(i:Integer): Integer; end;

Этот интерфейс представляет собой оболочку класса TRealSub j ect, который и нуждается в Прокси-расширении.

TRealSubject = class(TObject, Subject) public

function SampleMethod(i:Integer): Integer;

end;

А сам Прокси-класс выглядит так.

TProxy = class(TObject, Subject) strict private var

Puc. 7.13. Шаблон Прокси в Дизайнере модели

FSubject: TRealSubj ect;

public

function SampleMethod(i:Integer): Integer;

end;

В этом классе имеется ссылка FSubj ect на объект, подлежащий контролю, и функция, «обволакивающая» дополнительным кодом метод оригинального объекта.

function TProxy.SampleMethod(i:Integer): Integer;

begin

// дополнительные действия

// . . .

result := FSubject.SampleMethod(i);

end;

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии