Использование синглтона для хранения глобальных параметров приложения - PullRequest
5 голосов
/ 08 февраля 2010

Я разрабатываю простую симуляцию с OpenGL, и эта симуляция имеет некоторые глобальные константы, которые изменяются пользователем во время выполнения симуляции. Я хотел бы знать, является ли шаблон проектирования Singleton лучшим способом работы в качестве временного времени выполнения "хранилища конфигурации"

Ответы [ 2 ]

4 голосов
/ 08 февраля 2010

Синглтон, вероятно, является наилучшим вариантом, если вы хотите сохранить эти настройки действительно "глобальными".

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

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

1 голос
/ 08 февраля 2010

Я думаю, что в прошлом я использовал для этой цели пространства имен, а не одноэлементные классы, но это тоже должно работать (возможно, даже лучше).

Конечно, если вы хотите изменитьКонфигурирование без перекомпиляции, вы можете переместить все в отдельный файл свойств (или XML, YAML или CSV, или что вы предпочитаете), а затем загрузить его при запуске приложения.Тогда вам нужен класс "config" для хранения всех значений в хэш-карте (или что-то в этом роде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...