DesignPatterns. Singleton

Такой шаблон, который говорит сам за себя. У класса есть только один экземпляр. Один, совсем один ))

Плюсы исходят также из названия. Мы всегда работаем с единственным экземпляром.

Часто singleton помещают в какой-нибудь uCommon, инициализируют в initialization и уничтожают в finalization.

Популярный пример реализации

unit SingletonUnit;
 
interface
 
type
  TSingleton = class
  private
    constructor ActualCreate;
  public
    constructor Create;
    class function GetInstance: TSingleton;
  end;
 
implementation
 
var
  Singleton: TSingleton;
 
constructor TSingleton.ActualCreate;
begin
  inherited Create;
end;
 
constructor TSingleton.Create;
begin
  raise Exception.Create('Attempt to create an instance of TSingleton');
end;
 
class function TSingleton.GetInstance: TSingleton;
begin
  if Singleton = nil then
    Singleton := TSingleton.ActualCreate;
  Result := Singleton;
end;
 
end.
This entry was posted in Без рубрики. Bookmark the permalink.