LINUX.ORG.RU

Вопр по архитектуре С++ приложения


0

0

Здравствуйте!

У меня такой вопрос: хорошая ли практика использовать static-переменные как глобальные данные для всех объектов приложения?

Например, есть класс Database. Конструктор главного окна создает объект этого класса (database), и помещает в static-переменную класса, который есть холдером (holder). И так далее. Затем все объекты, к-рым необходимо получить database просто используют значение этой static-переменной.

Вообще, как лучше организовывать передачу обьектов (в плане архитектуры)?

Спасибо.

anonymous

Ищи книжку "Design Patterns", а в ней ищи про Singleton. Насколько я понял, тебе именно это надо.

На самом деле, с моей точки зрения, я бы сделал доступ через функцию-конструктор (статический метод класса), которая бы возвращала один и тот же экземпляр (и хранила бы его в том же static field класса), плюс переопределил бы delete, чтобы объект удалялся только тогда, когда никому больше не нужен (подсчёт ссылок).

watashiwa_daredeska ★★★★
()

2anonymous (27.07.2004 17:25:57):

То, что ты описАл, и называется Singleton -- стаднартный шаблон проектирования, см. ответ watashiwa_daredeska, -- только для порядка (чтобы случайно static-переменную не перетереть) конструктор у холдера делается протектед, а доступ к хранимому объекту -- через функцию-конструктор (статический метод холдера), которая по мере надобности и создаст хранимый объект (гарантированно, что только один раз).

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.