如果我们讨论ifs和干净的代码,我有一个与“最佳实践”有关的问题。什么是好的做法(特别是如果我们谈论Java):
public void foo(...){
.
.
if (something){
callfunction();
}
.
.
}
或
public void foo(...){
.
.
callfunction();
.
.
}
在第二种情况下,我们在callfunction()中包含“ if”。是否有与此案有关的良好做法?
答案 0 :(得分:2)
我能给您的最佳建议是清楚地命名您的功能。如果您的函数还有其他功能,则应在函数名称中提及该函数,以免造成混淆。
例如:
void sendEmail(Person person);
我希望它能发送一封电子邮件,仅此而已。如果person
为null
,则我希望此函数失败,并且不要默默地执行任何操作。在某些情况下不执行任何操作的函数最好命名为:
void trySendEmail(Person person);
或者:
void sendEmailIfPersonValid(Person person);
发信号通知函数调用者应解决的问题的一种好方法是检查函数中的废话输入:
void sendEmail(Person person) {
if(person == null) {
throw new IllegalArgumentException("person cannot be null");
}
if(!person.hasEmail()) {
throw new IllegalArgumentException("person must have an email address");
}
// code to send email here
}
如果您仍在学习,请查看java.*
软件包中的函数文档,它们的文档记录非常好,通常遵循最佳实践。