OC

Knowledge OS
主帖 8 条回复

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

Quibbler Quibbler · 2014年09月23日 · 无人欣赏。

public void updateEmployeeDeviceInfo(Employee e)
{

}

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

}

回复

8 条
#1
qianshijia
2014年09月24日

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

#2
netdigger
2014年09月24日

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

#3
Quibbler
2014年09月24日

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

#6
jokester
2015年11月21日

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

#8
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);
}
登录 或者 注册