У меня есть некоторый код, как:шаблона дизайна для следующей ситуации
class Base {
virtual bool acceptsData(char*) = 0;
};
class Derived1 : public Base {
virtual bool acceptsData(char*) { /* do something */ }
};
class Derived2 : public Base {
virtual bool acceptsData(char*) { /* do something else */}
}
Base* createStuff(char* data)
{
Base* d1 = new Derived1();
if(d1->acceptsData(data))
{
return d1;
}
delete d1;
Base* d2 = new Derived2();
if(d2->acceptsData(data))
{
return d2;
}
delete d2;
// and more ...
}
// .... somewhere later
int main()
{
Base* Aclass = createStuff("abc");
}
Я хотел бы избавиться от этой долгой if() ...
конструкции, а также использовать некоторые более обобщенные модели, но я до сих пор не сделал менеджер придумайте что-нибудь полезное. Есть ли лучший способ сделать это?
Вы знаете, что ваш пример кода имеет ужасную ошибку? – Dainius
Да, но это больше похоже на псевдокод C++, а не на то, что вы действительно хотите скомпилировать и использовать. – fritzone