Java方法命名约定和重载

时间:2016-05-14 09:34:46

标签: java naming-conventions overloading

我有一项服务,必须由某些房产归还人。我看到了两种命名这些方法的策略:

第一个:

getPersonById(int id)
getPersonByBirthDate(Date date)
getPersonByBirthDateAndSex(Date date,Sex sex)
getPersonByNameAndSex(String name,Sex sex)
getPersonByBirthDateAndNameAndSex(Date date,String name,Sex sex)
etc..

或应用重载规则执行以下操作:

getPerson(int id)
getPerson(Date date)
getPerson(Date date,Sex sex)
getPerson(String name,Sex sex)
getPerson(Date date,String name,Sex sex)

根据java命名约定哪个是正确的?

2 个答案:

答案 0 :(得分:10)

独立于重载问题,您的设计会受到组合API爆炸的影响:您开始为所有可能的搜索标准组合引入方法。另一种方法是引入一个收集标准并最终归还该人的建筑商。

示例:

 queryPerson().byId(5).run();  
 queryPerson().byName("John").bySex(Sex.MALE).run();
 queryPerson().bySex(Sex.FEMALE).run();

现在,服务API只有一个很好的queryPerson()方法。

答案 1 :(得分:2)

重载总是更好。 许多基于Java的KNOWN框架都遵循这种方法。 此外,重载的主要概念是因为你提到的条件。

重载方法简化了开发人员的可读性,因为不需要记住单独的名称。 此外,eclipse的 Ctrl + Space 功能总是会建议使用哪种方法。