Позволяет скрыть сложность системы путем сведения всех возможных внешних вызовов к одному объекту, делегирующему их соответствующим объектам системы.
Шаблон применяется для установки некоторого рода политики по отношению к другой группе объектов. Если политика должна быть яркой и заметной. Если же необходимо обеспечить скрытность и аккуратность, более подходящим выбором является шаблон Заместитель (Proxy).
program Facade;
type
TComputer = class
public
procedure PlugIn;
procedure PowerMonitor;
procedure Power;
end;
TNotebook = class
procedure Power;
end;
TKettle = class
procedure PlugIn;
procedure Power;
end;
TFacade = class
public
procedure PowerOn(aDevice: TObject);
end;
procedure TFacade.PowerOn(aDevice: TObject);
begin
if aDevice is TComputer then
with TComputer(aDevice) do
begin
PlugIn;
PowerMonitor;
Power;
end;
if aDevice is TNotebook then
with TNotebook(aDevice) do
Power;
if aDevice is TKettle then
with TKettle(aDevice) do
begin
PlugIn;
Power;
end;
end;
begin
with TFacade.Create do
try
PowerOn(TComputer.Create);
PowerOn(TNotebook.Create);
PowerOn(TKettle.Create);
finally
Free;
end.
Комментариев нет:
Отправить комментарий