crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> подклассы Singlton
call_me_Frank
  опции профиля:
сообщение 25.2.2015, 13:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


Привет!

не могу найти примера того, как нужно использовать подклассы Singlton'а Мейерса.
суть задачи проста: нужен абстрактный класс логгера, и несколько его реализаций - для файловой системы, для БД, для консоли и т.д. Конечно, сам Логгер на всю программу должен быть в ед. экземпляре.

Вот чего-то я запутался в этих трех соснах. :blink: Help me, please!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
call_me_Frank
  опции профиля:
сообщение 25.2.2015, 22:40
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


Постараюсь ответить по-порядку )

Iron Bug, спасибо за пояснение насчет __var. В приложениях такие имена никогда не использую, это был тест на скорую руку, что бы проверить независимость переменных с одним и тем же именем в разных классах. почему-то меня взяли сомнения на этот счет :lol: это было самое простое и быстрое решение. но теперь есть причина тем более не делать этого.

да, согласен, решение с классами действительно получилось довольно странным. я его не буду использовать, но кое на чем хочу остановиться: как мне показалось, вы (и 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) *
Что скажете насчет такого решения?


По хорошему, как было сказано вами же выше - наличие виртуального интерфейса не обязательно, особенно, если не планируется дать возможность пользователю менять поведение одиночки.
Реализацию же, всегда можно "скрыть" от непосредственных пользователей.

Сообщение отредактировал 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
- - call_me_Frank   Постараюсь ответить по-порядку ) Iron Bug, спасиб...   25.2.2015, 22:40
|- - wiz29   Цитата(call_me_Frank @ 25.2.2015, 22:40) ...   26.2.2015, 17:53
- - lanz   ЦитатаПолучаются перекрестные ссылки, и я не нашел...   26.2.2015, 10:06
- - Iron Bug   в случае, если перекрёстные ссылки всё-таки есть (...   26.2.2015, 11:21


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.12.2024, 5:44