![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Класс Config читает настройки приложения из xml-файла. Множество других классов теперь обращаются к нему для получения тех или иных настроек. Пока сделал глобальную переменную Config globalConfig; не пойму как обойтись без неё. Подумываю насчет singleton, но не уверен. Подскажите пожалуйста как расположить объект/переменную в правильной области видимости, чтобы не затруднять к ней доступ, и в тоже время не делать её глобально доступной.
|
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 5 Всего: 160 |
А синглтон то тут зачем?
![]() Может передавать ссылку на globalConfig в качестве одного из параметров конуструтора всякого объекта, которому может понадобится доступ к этому globalConfig? И всего делов. ![]() ![]() -------------------- |
|||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
)) ну, думал завернуть этот глобальный объект прямо в класс, и давать к нему доступ через
Хотя видимость объекта по сути не меняется, поэтому сомневался, надо ли оно. Насчет передачи ссылки всем желающим тоже думал, но было лень ) Хотелось попроще, ну и вылилось в глобальные переменные. Спасибо за ответ! |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 5 Всего: 160 |
![]() Зато с Dependency Injection (теперь я почти уверен, что это оно ![]()
Можно даже разные кофиги подсовывать разным объектам - мало ли. Так и живём. Код пишеться ("с нуля") один раз, а читается-правится потом сотни тысяч раз. Так что главное требование - лёгкость внесения изменений. Если бы было иначе самого понятия архитектуры ПО не было бы. -------------------- |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
множественный доступ чтения файла еще никто не запрещал, так что можно и не париться
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
Dem_max, перечитывать и парсить каждый раз?
-------------------- Обижено школьников: 8 |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Так отпарсить пару строк не составляет труда.
А вообще ты не описал задачу полностью. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: нет Всего: 88 |
я просто мимо проходил
-------------------- Обижено школьников: 8 |
|||
|
||||
LeonidPr |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: нет Всего: 1 |
Подскажите, а чем в данном случае плоха глобальная переменная? Согласен - конфиг один для всех получается, но в xml файл можно и запихать конфиги для всех модулей, если конечно система предполагается не ооочень большая. Зато единая точка для доступа к конфигам.
--------------------
pkunzip.zip |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |