[java] Java 부울 게터 “is”대 “are”

부울 게터에 대한 Java의 규칙은 접두사 “is”를 포함한다는 것을 알고 있습니다.

isEnabled
isStoreOpen

그러나 주제가 복수라면 어떨까요? 즉, 매장이 열려 있는지 알고 싶지 않고 모든 매장이 열려 있는지 알고 싶다면 어떻게해야할까요?

isStoresOpen() 영어로는 말이되지 않습니다.

다음과 같은 게터를 작성하고 싶습니다.

areStoresOpen
areDogsCute
areCatsFuzzy

그리고 그게 나을 생각하지만, 난 그냥 그것을 빨아 계약 및 사용 동사 주제를 포기해야 다른 사람이 들었어요 isStoresOpen, isDogsCute, isCatsFuzzy.

어쨌든, 복수 주제에 대해 작동하는 부울 게터에 대해 어떻게해야합니까?



답변

이 책이 어떤 책에서 왔는지 기억할 수 없지만 본질은 코드가 쓰여진 것보다 더 많이 읽힐 것이라는 것입니다. 가독성을 위해 작성하십시오.


답변

괜찮은 영어와 Java 표준을 따르는 것은 어떻습니까?

isEveryStoreOpen() 또는 isEachCatCute()

올바른 단어가 의심 스러울 때 나는 항상 동의어 사전을 치는 것을 좋아합니다.


답변

관례는 변수 자체가 아닌 “is”를 getter-method 앞에 붙이는 것입니다.

예 :

private boolean enabled;

public boolean isEnabled() {
    return enabled;
}

private boolean storesOpen;

public boolean isStoresOpen() {
    return storesOpen;
}

isStoresOpen ()은 영어에서 의미가 없습니다.

문법적으로 의미가 없을 수도 있지만 관례를 따르고 충분히 읽기 쉬워 보입니다.


답변

자바 콩 사양은 사용 말한다 get그것이 아니라면 게터에 대한 boolean다음 사용 is. are비표준이며 표준 Bean 이름 지정을 예상하는 어떤 것으로도 인식되지 않습니다.


답변

많은 도구가를 예상 is하거나 get인식하지 못할 것 are입니다.

같은 그들을 문구를 수정 시도 getDogsAreFuzzy()하거나 getStoresAreOpen()또는 더 나은 호환성과 규칙에 대한 그런 것들.


답변

isEnabled() 다음과 같이 작성할 수도 있습니다 getEnabled().Java naming conventions .

명명 규칙을 따르는 것은 좋은 습관이며 Java Beans.


답변

일반적으로 코드는 가능한 한 쉽게 읽을 수 있어야 메소드를 거의 단락처럼 읽을 수 있어야한다고 생각합니다 Clean Code. 따라서 가능한 한 쉽게 소리 / 읽기 방법을 지정하고 문법 규칙 인 are. 최신 IDE를 사용하면 특별히 get/ 를 찾지 않고도 메서드를 쉽게 찾을 수 있습니다.is .

그러나 Kumar는 콩에 대해 좋은 지적을합니다. 많은 도구는 get/ 만 찾습니다 is. 이 경우 두 가지 방법을 모두 고려할 수 있습니다. 하나는 읽기 쉽고 하나는 도구 사용을위한 것입니다.