【发布时间】:2023-03-03 00:16:01
【问题描述】:
我有一个容器,其中包含一堆指向基类的指针,以及一个接受一些输入并返回一个类的函数,该类是基类的子类。它返回哪个子类取决于输入。
现在,我有一个像这样的巨大 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:
...
}
}
我想知道是否有更好的设计方法。我不知道很多“设计模式”(我认为这就是他们所说的)所以我不知道是否有(明显的)更好的设计方法。
【问题讨论】:
-
最好有一个字典将你的键映射到类或类名(或者如果你的键是整数,则只是一个数组)。但这可能吗?见类似问题:stackoverflow.com/questions/582331/…
-
@Ray 感谢您的链接,该问题与我的非常相似,并且几乎可以回答问题。
标签: c++ inheritance switch-statement class-hierarchy construction