Здравствуйте, szag, Вы писали:
S>Здравствуйте, sidorov18, Вы писали:
S>>У меня, например, синглтоном класс лог.
S>>А еще есть класс-синглтон, который контент из нета качает и парсит в свои структуры.
S>всегда может понадобится второй лог и работа через несколько соединений. Чисто моё имхо, в идеальной программе сингелтонов быть не должно. Практически всегда может потребоваться вторая копия объекта и исправить это будет не так просто, как изначально отказаться от использования синглтонов.
Это зависит от того, как сделан синглтон, насколько его "синглтоновость" вшита в класс. И может решатся комментированием одной строчки или даже его можно сделать многофункциональым.
например:
template<typename T>
T& get_instance_singletone()
{
static T t;//работу в многопоточной среде убираем для наглядности.
return t;
}
или это уже не синглтон?
второй экземпляр может понадобится, а может и не понадобится.
Например есть COM класс, который должен быть синглтоном. и за последние пол года это не изменилось пока)
Синглтоном его делает своя фабрика. Как в этом случае избавится от синглтона? COM сервер — внепроцессный.
А чтобы его переделать в обычный класс, нужно закомментить одну строчку — DECLARE_CLASSFACTORY_EX(...) или добавить еще один класс, который будет от него наследоватся — если нужно 2 класса.