MyTetra Share
Делитесь знаниями!
Как в C++ можно держать основные настройки программы и прочие конфигурирующие данные не в глобальной области видимости
Время создания: 21.02.2018 13:14
Текстовые метки: c++, глобальные данные, доступ, синглтон, singletone, область видимости
Раздел: Компьютер - Программирование - Язык C++ (Си++)
Запись: xintrea/mytetra_syncro/master/base/15192080415ddwz2hq47/text.html на raw.github.com

Часто при проектировании программы выделяется некий набор данных, которые постоянно нужны в том или в другом месте программы. И хочется иметь простой способ достучаться к таким данным, без постоянных передач указателей на эти данные в параметрах вызываемых методов.


Обычно такие данные оформляются в виде синглтона. Но основная задача написания класса как синглтона - это обеспечение единственности инстанса данного класса. Это хорошее свойство, но недостаточное - программисту нужна именно возможность быстрого и простого доступа к объекту класса из любого места в программе.


Сделать это можно следующим образом. Необходимо сделать статический метод, например с именем instance(), который будет возвращать указатель на статический экземпляр этого же класса, хранящийся в данном методе. Вот так:


GlobalParameters* GlobalParameters::instance() // Метод должен быть статический

{

static GlobalParameters globalParameters; // Статическая переменная

return &globalParameters;

}


Использование:


#include "GlobalParameters.h"


GlobalParameters::instance()->anyMethod();


Проверить: надо ли создавать хотя бы один экземпляр данного объекта где-то в начале программы.



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования