方法签名相同时的命名约定?

时间:2015-05-01 18:56:37

标签: naming-conventions

嗨,如果你有一个具有相同签名的方法,那就说吧。

void getErrorMessage(int errorCode){

}

void getErrorMessage(int domain){

}

我知道我必须更改名称或区分参数但是最好的方法是什么?

---------------------------编辑。

构造函数怎么样?

例如

public ErrorMessage(int errorCode){
}
public ErrorMessage(int domain){
}

3 个答案:

答案 0 :(得分:1)

您可以将方法名称设为显式:

getErrorByErrorCode(int errorCode)

getErrorByDomain(int domain)

答案 1 :(得分:1)

您可以添加" ByFoo"到方法的最后,例如:getErrorMessageByCodegetErrorMessageByDomain

答案 2 :(得分:0)

最不危险且最容易理解的方法是:

public class ErrorCode {
    private int intCode;
    ErrorCode(int intCode) {
        this.intCode = intCode;
    }
    int getIntegerCode() {
        return intCode;
    }
}
public class Domain {
    private int domain;
    Domain(int domain) {
        this.domain = domain;
    }
    int getIntegerCode() {
        return domain;
    }
}

Message getErrorMessage(ErrorCode errorCode)

Message getErrorMessage(Domain domain)

请注意,这些类是不可变的。你应该也可以覆盖equals。在使用整数值的任何地方使用这些类。

现在无法在代码中的任何位置误认为域的错误代码。如果你误认为另一个你会得到编译器错误,编译器将选择正确的getErrorMessage实现。只有在需要对对象执行整数运算时,才从对象中提取整数值。