ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
42310 Топик полностью
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 системах.