IMO,主要的好处是方法/函数命名的一致性,这些方法/函数在逻辑上执行非常相似的任务,并且在接受不同的参数方面略有不同。这允许在多个实现中重复使用相同的方法名称。
例如过载:(好)
function Person[] FindPersons(string nameOfPerson) { ... }
function Person[] FindPersons(date dateOfBirth) { ... }
function Person[] FindPersons(int age, string dogsName) { ... }
比“唯一命名”的函数更可取:(更糟糕)
function Person[] FindPersonsByName(string nameOfPerson) { ... }
function Person[] FindPersonsByDOB(date dateOfBirth) { ... }
function Person[] FindPersonsByAgeAndDogsName(int age, string dogsName) { ... }
这样,编写调用/使用这些函数的客户端的编码人员可以在更高层次的概念思维(“我需要找到一个人”)下进行操作,并且不需要记住/找到人为的函数名称。
使用静态类型,编译器将根据使用参数来匹配适用的重载。对于动态类型,相同的匹配将在运行时发生,如果没有找到适当的匹配,可能会导致失败。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)