Jean Labrosse (25.10.2005 01:38, просмотров: 1) ответил ReAl на Может я и ошибаюсь, но синглетон - это класс, у которого в любой момент времени
Совершенно верно. Более того, наиболее популярные реализации singleton (например Скотта Мейерса) подразумевают СОЗДАНИЕ ЭКЗЕМПЛЯРА ПРИ ПЕРВОМ ИСПОЛЬЗОВАНИИ, т.е. отложенное (lazy) создание, с помощью статического метода getInstance().
class MySingleton {
public:
static MySingleton& getInstance() {
static MySingleton s;
return s;
}
private:
...
}
При этом, на мой взгляд, singleton в таком виде мало применим для embedded систем, т.к.:
- проблемы с мультизадачными системами (RTOS);
- если конструктор потребляет много ресурсов (время выполнения, необходимый размер стека) -- это также проблема, например если getInstance() будет вызван из ISR.
У того же Мейерса и Александреску можно найти интересные обсуждения данной темы. Для себя я сделал вывод что классическая реализация singleton (при всей своей красоте) малоприменима в embedded системах.