Evgenii Legotckoi
Қыр. 25, 2018, 4:09 Т.Қ.

Мысал - Delphi-дегі зауыттық әдіс

Мазмұны

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

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


Пример

В примере Abstract Factory каждая из функций создания виджета является виртуальным Factory Method. В своей реализации мы определяем конкретный класс виджетов в качестве возвращаемого значения.

  1. TRedSpeedButton = class(TSpeedButton)
  2. public
  3. constructor Create(AOwner: TComponent); override;
  4. end;
  5.  
  6. constructor TRedSpeedButton.Create(AOwner: TComponent);
  7. begin
  8. inherited Create(AOwner);
  9. Font.Color := clRed;
  10. end;
  11.  
  12. function TORedFactory.CreateSpeedButton(AOwner: TComponent): TSpeedButton;
  13. begin
  14. Result := TRedSpeedButton.Create(AOwner);
  15. end;

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз