我有一个充满类的目录,它们基本上都是这样的:
class QEDestroy {
void showSettings() {
// Do Something Here
}
}
然后我有一个类,它将根据用户选择的项实例化其中一个类:
public class QESettings {
public void GetSettings() {
if (QEActions.actionInt >= 0) {
string action = QEActions.actions[QEActions.actionInt];
// Generate the class based on the action.
// Run showSettings() within the class.
}
}
}
我无法弄清楚如何实例化该类;例如QEDestroy
。从我所读到的,这是如何创建类:
var myObj = Activator.CreateInstance("", "QE" + action);
如果是,我该如何运行方法showSettings()
?
答案 0 :(得分:0)
最简单的解决方案通常是正确的解决方案。创建interface
。
public interface QE
{
void showSettings();
}
然后有不同的"版本"在QE
函数上执行不同任务的showSettings()
。
public class QE_Example
{
public void override showSettings()
{
print("I am different.");
}
}
然后当你在QESettings
课程中实例化时,你会这样做:
public void GetSettings()
{
if(QEActions.actionInt >= 0)
{
...
QE q = new QE_Example();
q.showSettings();
}
}
这意味着您实际上偶然发现了一个名为Strategy Pattern的着名设计模式。