[設計] 重構去除未使用參數的方式

作者: darnoc (流浪)   2010-05-09 20:56:26
大家好:
最近遇到一個問題,就是要重構某個 class 階層中,
未使用到的 function parameters,但卻不知該如何下手
才好。原本的 code 示意如下:
(程式碼以C++舉例,但實際的應用可能是其他語言,例如
不支援多重繼承的Java)
class BaseClass
{
public:
virtual void Foo(int a, int b) = 0;
};
class DerivedOne : public BaseClass
{
public:
virtual void Foo(int a, int b)
{
cout << a << b << endl;
}
};
class DerivedTwo : public BaseClass
{
public:
virtual void Foo(int a, int b)
{
// b is unreferenced
cout << a << endl;
}
};
如上所示,當我期望透過多型的方式,一視同仁的操作
實際上指向不同類別的物件時,有的子類別會用到某個
參數(例子中的b) ,但某些子類別則否,這時候該怎麼
去除這樣的 unreferenced parameters比較好呢?
如:
BaseClass *ptrA = new DerivedOne;
ptrA->Foo(0, 1);
BaseClass *ptrB = new DerivedTwo;
ptrB->Foo(0, 1); // 1 is unreferenced
不知道大家有沒有什麼比較好的想法?謝謝。

Links booklink

Contact Us: admin [ a t ] ucptt.com