- 1. Example
This pattern is useful when you want to encapsulate the construction of a class and isolate knowledge of the concrete class from the client application through an abstract interface.
Один из примеров этого может возникнуть, если у вас есть объектно-ориентированное бизнес-приложение, потенциально связанное с несколькими целевыми СУБД. Клиентское приложение только хочет знать о бизнес-классах, а не об их хранилище и извлечении для конкретной реализации.
Example
In the Abstract Factory example, each of the virtual widget constructor functions is a Factory Method. In their implementation we define a specific widget class to return.
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;