我有一個派生的子類繼承基本類,它承載的是應該是相同的所有派生類的基本功能:可選功能的設計模式?
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