Добавить комментарий

Delphi

Как создать сиглтон

Синглтон - шаблон проектирования, гарантирующий, что в приложении будет только один экземпляр некоторого класса и предоставляющий глобальную точку доступа к этому классу.

Все классы Delphi - наследники от TObject и все используют функцию класса NewInstance, которая выделяет память для экземпляра объекта. Важно, что этот метод виртуальный, и мы можем иземнить поведение до того, как будет занята память под новый экземпляр.

type
  TSingleton = class
  strict private
    class var
      Instance: TSingleton;
  public
    class function NewInstance: TObject; override;
  end;

class function TSingleton.NewInstance: TObject;
begin
  // Если один экземпляр создан, то новый Create будет возвращать указатель на созданный экземпляр.
  if not Assigned(Instance) then
    Instance := TSingleton(inherited NewInstance);
  Result := Instance;
end;

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.