Evgenii Legotckoi
25 вересня 2018 р. 16:09

Приклад - Фабричний метод в Delphi

Зміст

Цей шаблон корисний, якщо ви хочете інкапсулювати створення класу та ізолювати інформацію про конкретний клас від клієнтської програми через абстрактний інтерфейс.

Один із прикладів цього може виникнути, якщо у вас є об'єктно-орієнтований бізнес-додаток, потенційно пов'язаний з декількома цільовими СУБД. Клієнтський додаток тільки хоче знати про бізнес-класи, а не про їхнє сховище та конкретну реалізацію для отримання даних.


Приклад

У прикладі Abstract Factory кожна з функцій створення віджету є віртуальним Factory Method. У своїй реалізації ми визначаємо конкретний клас віджетів як значення, що повертається.

TRedSpeedButton = class(TSpeedButton)
  public
    constructor Create(AOwner: TComponent); override;
  end;

constructor TRedSpeedButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Font.Color := clRed;
end;

function TORedFactory.CreateSpeedButton(AOwner: TComponent): TSpeedButton;
begin
  Result := TRedSpeedButton.Create(AOwner);
end;

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up