请问以下两种函数写法,哪种比较好呢

Quibbler 发布于 2014年09月23日
无人欣赏。

public void updateEmployeeDeviceInfo(Employee e)
{

}

public void updateEmployeeDeviceInfo(string clientVersion,string systemName,string systemVersion)
{

}
共8条回复
qianshijia 回复于 2014年09月24日

第一种好。想象一下, 如果要给第二个updateEmployeeDeviceInfo增加一个参数,你要在项目里找到所有的updateEmployeeDeviceInfo然后添加这个参数。但是第一个就不需要那么麻烦,直接在Employee这个类里做更改就行了。

netdigger 回复于 2014年09月24日

依赖于抽象而不是一个实例。如果不是employee类的成员函数,我喜欢用第二种,这样这个类就不会和employee扯上关系了。当然employee是一个接口就例外。

Quibbler 回复于 2014年09月24日

第一种我在使用中最大的问题是不清楚哪些参数是有效的。 第二种添加参数的时候就会比较繁琐。

人在江天 回复于 2015年11月13日

都不好,不如直接json

Raymond 回复于 2015年11月18日

2楼 @netdigger 赞同

jokester 回复于 2015年11月21日

如果這個類可以依賴EmployEE (比如是business logic的一部分) 第一種較好

oo123ooiiiii 回复于 2015年11月22日

感觉上下文不够吧?

TimLee 回复于 2015年11月23日

第一种,2楼说的太天真了,这明显是employee的service方法,肯定是有关系的。 如果只想改三个属性就直接这么写:

public void updateEmployeeDeviceInfo(Employee e){
  Employee olde = employeeDao.get(e.getId());
  if(olde == null)
    throw new Exception();
  olde.setX(e.getX);
  olde.setY(e.getY);
  olde.setZ(e.getZ);
  employeeDao.save(olde);
}
登录 或者 注册