Re[2]: static or singleton быть или не быть? И как быть?
От: AlexGin Беларусь  
Дата: 22.09.16 08:11
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Здравствуйте, 0x00, Вы писали:


0>>было интуитивно понятно что экземпляр рендера должен быть один


MD>Очень опасное самоуспокоение

Но справедливое, если применяешь OpenGL!

MD>Скажем, завтра портируем для каких-нибудь гугло-очков или телефона с двумя экранами — и вдруг опа, на каждый экран надо свой рендерер. Или пишем какой-никакой юнит-тест, и надо подоткнуть псевдо-рендерер. А у нас везде MyRenderer::getInstance() натыкан. Будет больно.


Работая с OpenGL, убедился что именно такое решение — правильное!
Второй рендерер — не будет корректно работать в другом потоке или процессе!
Мы для этой цели — применяем мьютекс.

Если тебе нужно два экрана, сначала следует отрендерить один, затем второй. Одновременно рендерить — это неправильно.

MD>Код не должен знать, сколько экземпляров объекта. Он должен пользоваться тем экземпляром, что передан снаружи.

Это вопрос дизайна архитектуры продукта.
Или на уровне дизайна, или на уровне реализации — следует запретить одновременное использование двух рендереров OpenGL.
Отредактировано 22.09.2016 8:14 AlexGin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.