MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как в C++ можно держать основные настройки программы и прочие конфигурирующие данные не в глобальной области видимости
21.02.2018
13:14
Текстовые метки: c++, глобальные данные, доступ, синглтон, область видимости
Раздел: Компьютер - Программирование - Язык C++

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


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


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


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

{

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

return &globalParameters;

}


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


#include "GlobalParameters.h"


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


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



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