函数的参数太多,我想用一个类来作为一个参数

03-11-28 chinahero
原来的参数都作为这个类的成员变量,这样好吗?

chinahero
2003-11-28 16:21
比如:

myCall(int i,int j,String c,char c);

public class para{

int i;

int j;

string c;

char d;... get/set方法

}

函数变成myCall(para i)

这样好么?

litanjun
2003-11-28 16:56
要有对象的观念,把这些参数包装到对象里,但不要强行封装到一个类里面

chinahero
2003-12-01 14:25
我是这样做的,写了一个基类,基类中的变量是很多共性的,比如start,count等,然后对于不同的应用,从基类派生出有不同变量的子类,现在我有一个问题就是,我的函数定义应该如何写

比如两个应用的不同函数,对于User模块有参数类UserParam,FeeBack模块有参数类FeeParam

是这样定义好

1.getUser(Param a)

2.getFeeback(Param a)

还是

1.getUser(UserParam a)

2.getFeeBack(FeeParam a)这样好不好

litanjun
2003-12-01 17:11
随便谈谈,个人觉得既然只是封装一下简单的参数,第二种方法方便点,类型放到外面转换。

avafanners
2003-12-19 17:02
用Value Object作为参数也是可以的啊

jjunchen
2003-12-28 00:42
在martin fowler的《重构》一书中,就强调了,如果方法调用的参数过多,或者多个方法都使用相同的参数,那么可以考虑将参数对象化。原文称作Introduce Parameters Object(引入参数对象)。

shanmoshi
2004-01-03 12:12
参数过多的话还是要先看看能不能减少,如果不能的话,才考虑用对象

就像

struts的action一扬

public ActionForward execute(

ActionMapping actionMapping,

ActionForm actionForm,

HttpServletRequest request,

HttpServletResponse response)

throws DataBaseException, WebServerException {}

猜你喜欢