Java方法传参到底传所需参数好还是传实体好?

目录
  1. 1. 第一种方式
  2. 2. 第二种方式

第一种方式

单一职责原则,方法只做它自己做的事情,需要什么参数就传什么参数。如果说需要多加一个参数了,那么就新建一个方法,这样原来旧方法调用的地方也不用修改。这是符合开闭原则的:面向扩展开放,面向修改关闭。

1
2
3
public List<String> getUsers(String groupId, LocalDate beginDate, LocalDate endDate) {
//TODO
return null;

第二种方式

当有前端传参,需要做综合查询时,传一个实体作为参数,那么就算前端需要更多查询条件,只需要前端多传一个就行了,这种情景下,方式一就不太适合。
而如果方式一情景下用方式二的方法,那么有很多调用的地方也行根本不需要实体里的其他参数,如果不传或者传错,有可能造成错误。

1
2
3
4
public List<Users> getProjects(User param) {
//TODO
return null;
}

所以,这两种方式要权衡使用场景,而不是一味追求某种方式。