Re: Pattern InstancePool
От: MrVoid  
Дата: 24.07.10 23:10
Оценка:
"Паттерном" это вообще вряд ли можно было бы назвать, так как паттерн здесь уже есть — это синглтон.

Решение обладает следующими недостатками:

1. Дикая неэффективность: каждое обращение к экземпляру — поиск в std::map. Это делает данное решение практически непригодным.
2. Неудобная длинная запись при получении экземпляра.
3. Модель многопоточности задается для всех синглтонов сразу, а не для каждого в отдельности.

Да и вообще, непонятно для каких целей это нужно. Для тех, у кого в программе очень много синглтонов? В нормальной программе будет от силы несколько синглтонов, причем приоритетом часто является скорость доступа к экземпляру.

Кстати, такую же функциональность, как в вашем примере, можно получить таким элементарным кодом (только он гораздо эффективнее):

template <class Type>
inline Type& GetInstance()
{
    static Type instance;
    return instance;
}


(Если нужна многопоточность, тело функции соответствующим образом изменить).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.