我有一个派生的子类继承基本类,它承载的是应该是相同的所有派生类的基本功能:可选功能的设计模式?
class Basic {
public:
Run() {
int input = something->getsomething();
switch(input)
{
/* Basic functionality */
case 1:
doA();
break;
case 2:
doB();
break;
case 5:
Foo();
break;
}
}
};
现在的基础上,派生类,我想“添加”更多case语句交换机。我在这里有什么选择?我可以声明虚函数只有在派生类要使用它们定义它们:
class Basic {
protected:
virtual void DoSomethingElse();
public:
Run() {
int input = something->getsomething();
switch(input)
{
/* Basic functionality */
...
case 6:
DoSomethingElse();
}
}
};
class Derived : public Basic {
protected:
void DoSomethingElse() { ... }
}
但在任何派生类中转变职能时,这将意味着,我将不得不修改我的基类,以反映这些变化。
是否有专门针对此类问题的设计模式?我购买了许多关于设计模式的书籍,但是我正在“按需”基础上研究它们,所以我不知道我是否有这样的模式。
我想我现在要去模板方法模式。我一定会阅读并考虑在这里列出的其他模式,但现在这可以被标记为接受:) – 2009-05-21 09:49:31