[设计] 重构去除未使用参数的方式

楼主: 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