我有一项服务,必须由某些房产归还人。我看到了两种命名这些方法的策略:
第一个:
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命名约定哪个是正确的?
答案 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 功能总是会建议使用哪种方法。