在當前項目中的細微差別抽象類,我班命名爲BlahManager
和類命名BlahController
,這樣的定義:與實施者
class BlahController
{
public:
void doSomething(int x, float y){
// do the work
}
void doOtherThing(char a, char* b, int c){
// do the work
}
}
class BlahManager
{
public:
BlahController m_controllers[5];
void doSomething(int blahIndex, int x, float y){
m_controllers[blahIndex].doSomething(x,y);
}
void doOtherThing(int blahIndex, char a, char* b, int c){
m_controllers[blahIndex].doOtherThing(a,b,c);
}
}
是他們無論如何使抽象類定義的功能doSomething
和doOtherthing
只一次,並使班級經理和控制器執行它?
我想這樣做強制管理器和控制器之間的函數名稱/參數的相似性。
是否有一個特別的原因,你爲什麼需要包裝'BlahController'方法,而不是像'BlahController&GetController(size_t blahIndex)'(甚至是'operator []''如果合適的話)暴露控制器? –