Здравствуйте, гость ( Вход | Регистрация )
|
call_me_Frank |
25.2.2015, 13:50
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: 0
|
Привет!
не могу найти примера того, как нужно использовать подклассы Singlton'а Мейерса. суть задачи проста: нужен абстрактный класс логгера, и несколько его реализаций - для файловой системы, для БД, для консоли и т.д. Конечно, сам Логгер на всю программу должен быть в ед. экземпляре. Вот чего-то я запутался в этих трех соснах. |
|
|
|
![]() |
|
call_me_Frank |
25.2.2015, 22:40
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 73 Регистрация: 20.10.2010 Пользователь №: 2129 Спасибо сказали: 0 раз(а) Репутация: 0
|
Постараюсь ответить по-порядку )
Iron Bug, спасибо за пояснение насчет __var. В приложениях такие имена никогда не использую, это был тест на скорую руку, что бы проверить независимость переменных с одним и тем же именем в разных классах. почему-то меня взяли сомнения на этот счет да, согласен, решение с классами действительно получилось довольно странным. я его не буду использовать, но кое на чем хочу остановиться: как мне показалось, вы (и Iron Bug, и wiz29) не поняли моего вопроса насчет развязки хедеров. Дело в том, что нет возможности вынести class2 в отдельный файл - он зависит от class1, который в свою очередь использует class2 в своей функции instance(). Получаются перекрестные ссылки, и я не нашел решения, как их развязать. Что скажете, сможете предложить решение? или это я не понял ваших комментариев? Цитата не совсем понятно, зачем этот огород? Iron Bug права ) это не только поиск нужного решения, это в первую очередь необходимая практика и желание разобраться. wiz29, Цитата Пользователю вообще обычно нет дела, куда пишется, был бы интерфейс, который позволяет это делать. - именно в этом и состоит моя задача.Цитата Опять же, есть вариант при котором могут быть реализованы несколько объектов-одиночек. - мне кажется, именно он и реализован во втором предложенном мной варианте с шаблонами, нет? Что скажете насчет такого решения?
|
|
|
|
|
wiz29 |
26.2.2015, 17:53
Сообщение
#3
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12
|
Цитата(call_me_Frank @ 25.2.2015, 22:40) Link Что скажете насчет такого решения? По хорошему, как было сказано вами же выше - наличие виртуального интерфейса не обязательно, особенно, если не планируется дать возможность пользователю менять поведение одиночки. Реализацию же, всегда можно "скрыть" от непосредственных пользователей. Сообщение отредактировал wiz29 - 26.2.2015, 17:54 |
|
|
|
call_me_Frank подклассы Singlton 25.2.2015, 13:50
Iron Bug как-то непонятно, чего ты хочешь. singleton всегда... 25.2.2015, 15:18
call_me_Frank я планирую сделать так:
наследовать от QObject (ю... 25.2.2015, 15:44
Iron Bug ты пытаешься применить паттерн фабрики к синглтону... 25.2.2015, 15:55
call_me_Frank именно!
так я и читаю книжку по паттернам, от... 25.2.2015, 16:17
wiz29 Цитата(call_me_Frank @ 25.2.2015, 16:17) ... 25.2.2015, 19:25
call_me_Frank решил!
// .H
#ifndef CLASS1_H
#define CLAS... 25.2.2015, 17:26
Iron Bug насчёт решения с классами - какое-то оно странное.... 25.2.2015, 19:02
call_me_Frank Вот еще один вариант реализации с помощью шаблонов... 25.2.2015, 18:41
wiz29 не совсем понятно, зачем этот огород?
qDebug() все... 25.2.2015, 19:11
Iron Bug Цитата(wiz29 @ 25.2.2015, 21:06) не совсе... 25.2.2015, 19:11
lanz ЦитатаПолучаются перекрестные ссылки, и я не нашел... 26.2.2015, 10:06
Iron Bug в случае, если перекрёстные ссылки всё-таки есть (... 26.2.2015, 11:21![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 10:08 |