Делфи 2006 - Модел на единични

Има много случаи, когато определен клас в програма трябва да бъде представен от един екземпляр. Например, библиотеката Delphi VCL има глобална променлива Приложение (екземпляр на клас ПРИЛОЖЕНИЕ), осигуряване на достъп до системните характеристики на самата програма по време на изпълнение. Очевидно може да има само един екземпляр от този клас и глобалната променлива осигурява достъп до него. Приложение. На теория обаче нищо не пречи на разработчика да създаде нов екземпляр на класа ПРИЛОЖЕНИЕ (фиг. 7.6).

един екземпляр

Фигура: 7.6. Моделен модел в дизайнер на модели

Шаблонът Singleton ви позволява да създадете само един екземпляр на клас и той е достъпен чрез указател - вътрешно поле Flnstance, които могат да бъдат достъпни чрез метода Вземете инстанция.

TSingleton = claee строг частен клас var

функция на клас Getlnstance: TSingleton;

Внедряването на този метод е прозрачно - осигурява постоянна работа с един и същ екземпляр на този клас:

функция на клас TSingleton.GetInstance: TSingleton; започнете

Ако FInstance = нула, тогава започнете

FInstance: = TSingleton.Create (); край;

Резултат: = FInstance; край;

В същото време програмистът винаги използва само този метод, без да разбира дали този екземпляр е създаден преди това изрично - тази проверка се извършва автоматично.

Имайте предвид също, че конструкторът е скрит в частната секция на класа TSingleton, така че не може да бъде достъпен, а променливата FInstance е описана като променлива на класа, която позволява абстрактни операции над класа, без изрично създаване на обект. Тази тактика е много подходяща за тази задача.

Бобровски С. И. Технологии Delphi 2006. Нови възможности. - SPb.: Peter, 2006. - 288 e.: Ил.