Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Плюсы
контролируемый доступ к единственному экземпляру
уменьшение числа имен
допускает уточнение операций и представления
допускает переменное число экземпляров
большая гибкость, чем у операций класса
Минусы
глобальные объекты могут быть вредны для объектного программирования, в некоторых случаях приводя к созданию не масштабируемого проекта
усложняет написание модульных тестов и следованию TDD
Применение
должен быть ровно один экземпляр некоторого класса, легко доступный всем клиентам
единственный экземпляр должен расширяться путем порождения подклассов, и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода
Плюсы
Минусы
Применение
type TSingleton = class strict private class var Instance: TSingleton; public class function NewInstance: TObject; override; end; class function TSingleton.NewInstance: TObject; begin if not Assigned(Instance) then Instance := TSingleton(inherited NewInstance); NewInstance := Instance; end;
Комментариев нет:
Отправить комментарий