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

今天因为一个方法传参问题,被开发经理批评了,于是我就想搞明白我到底错了没有。
我这个方法,是为了做统计用的,也就是说,是针对某种情况写的方法。而不是像前端综合查询那样很稳定,需要很多查询条件的方法。
于是我问了一位上仙级导师,他给我的答复了,我觉得有道理,按我的理解整理一下,记录下来,如果有错误,一定是我理解错了,可不关人家上仙导师的事。
第一种方式,单一职责原则,方法只做它自己做的事情,需要什么参数就传什么参数。如果说需要多加一个参数了,那么就新建一个方法,这样原来旧方法调用的地方也不用修改。这是符合开闭原则的:面向扩展开放,面向修改关闭。
而我们开发经理批评我的理由:“你这样写,我需要扩展了,就要改所有的调用的地方。”
她这个说法是不符合开闭原则的,因为我们说的扩展,是在不修改当前方法的基础上扩展,而不是让她扩展参数,她这不叫扩展,叫修改。上仙说这是很低级的设计方式。

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

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

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

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值