我有一个容器,它包含一堆指向基类的指针,以及一个函数,它接受一些输入并返回一个作为基类子类的类。它返回哪个子类取决于输入。
现在,我有一个像这样的巨大 switch 语句:
class Base { ... }
class A : public Base { ... }
class B : public Base { ... }
...
class Z : public Base { ... }
Base* depends(int input) {
switch (input) {
case 1:
return new A(...);
case 2:
return new B(...);
...
case 26:
return new Z(...);
default:
...
}
}
我想知道是否有更好的方法来设计这个。我不知道很多“设计模式”(我认为这就是他们所说的)所以我不知道是否有(明显的)更好的设计方法。