Re[4]: Телепаты-то в отпуске!
От: Sheridan Россия  
Дата: 17.09.10 14:06
Оценка:
Приветствую, Erop, вы писали:

E> S>Так?

E> Почти.
E> Что за класс? Это какой-то интерфейс большой, ну, скажем, интерфейс приложения, или это какой-то объект?
Таких либ пока что пара.
1) читает / пише конфиг и дает доступ к параметрм
2) работа с сетью — серверный\кдиентский сокет...

E> Сколько экземпляров этого класса может быть в наличии?

Вполне возможно что больше одного

E> Просто надо как-то решить вопросы владения.

E> Во-первых, нехорошо, что с вызывающей стороны могут удалить этот твой экземпляр. Сервер может быть не готов, кроме того, клиент это может сделать как-то не так.
Так, стоп... У нас есть 2 приложения, в каждом по паре указателей на экземпляры класса. Насколько я понимаю — между собой приложения никак пересечься не могут — следовательно разговор идет только о возможных проблемах внутри одного приложения?

E> Намного надёжнее деструктор сделать protected, а в интерфейс добавить метод virtual void Destroy() = 0, который тоже реализовать в My. Ну там в виде delete this, например. Или COW замутить, если надо. Обычно при построениии таких систем экспортированных объектов (скажем в COM, например) имеют какой-то интерфейс, который как раз отвечает за владение и прочие токости, а из него выводят уже все остальные.

Хорошая идея, спасибо, подумаю.

E> Но если нужно экспортировать интерфейс синглетона, то можно так не заморачиваться а просто завести статический объект и возвращать из той самой функции его адрес.

Гм... надо подумать...
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.