![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
azesmcar, а зачем объекту надо решать, кто куда ему будет писать? это уже много обязанностей, когда объект и основную работу выполняет и решает куда ему лог писать.
другое дело, что объекту нужен логгер для логов - ему дают логгер (не каждый объект должен вести логи) а вот нужно вести лог вообще, или в какой файл или не файл этот лог должен вестись - решает тот кто объект создает. если лог не нужен, объекту дают null-логгер который ничего не делает, если нужно писать в файл или в сокет дают соответствующий логгер. а статически или динамически - другой вопрос, будет это class Foo { Foo(ILogger* log) ... }; или template<typename LOG> class Foo { Foo(LOG& log) ... }; или template<typename CFG> class Foo { Foo(CFG::logger_t log) ... }; Добавлено через 1 минуту и 38 секунд там что класс Writer жестко задан, и его никак не поменять |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
azesmcar, я имел ввиду
template<typename W> ... { Logger<W>::write("text"); } и ... { Logger<ConcreteWriter>::write("text"); } это ведь разные вещи? как например AbstractFoo* foo; foo->write("text"); и ConcreteFoo* foo; foo->write("text"); |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Где-то его все равно надо будет конкретизировать. Я показал именно конкретизированную часть, хочешь передавай конркетный врайтер в функции main, какая разница. Это решается в зависимости от требований. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |