Есть ли у кого какие-нибудь идеи по оптимизации реализации фабрики классов.
К примеру:
class r{};
class r1: public r {...};
class r2: public r {...};
class r3: public r {...};
r* getObject( int rid )
{
switch(rid)
{
case 1: return new r1();
case 2: return new r2();
case 3: return new r3();
}
}
Как можно реализовать фабрику без использования switch... так чтобы в дальнейшем можно было бы более элегентно добавлять создание новых классов?
Hello, Glоbus, you wrote:
> имеющий метод Close(). Поиск по мапу, если я не ошибаюсь, будет
> работать быстрее свича.
Оптимизирующие компиляторы сейчас генерируют код для свича, который
работает за время log n, где n — количество case'ов, поэтому скорость
свича и map'а из STL одинаковы.
--
Igor Polyakov — igorpol_gbt (at) mail (dot) ru
Posted via RSDN NNTP Server 1.9
Здравствуйте, Niggar, Вы писали:
N>Есть ли у кого какие-нибудь идеи по оптимизации реализации фабрики классов.
А я бы посоветовал не изобретать своих велосипедов и использовать уже готовые.
Например
http://sourceforge.net/projects/loki-lib (Factory.h)