2012-08-13 10 views
10

Które z poniższych deklaracji jest zgodne z konwencjami nazewnictwa Java?Konwencja nazewnictwa Javy dla nazw zmiennych logicznych: writerEnabled vs writerIsEnabled

private boolean writerIsEnabled; 
// with methods like 
public boolean getWriterIsEnabled() 
public void setWriterIsEnabled() 

LUB

private boolean writerEnabled; 
// with methods like 
public boolean getWriterEnabled() 
public void setWriterEnabled() 

Ja osobiście znaleźć imię "writerIsEnabled" być bardziej czytelne, zwłaszcza jeśli używasz go w if tak -

if(writerIsEnabled) 
{ 
    //... 
} 
+1

możliwy duplikat [Poprawne nazwy komponentów Java dla booleans] (http://stackoverflow.com/questions/799280/valid-java-bean-names-for-booleans) –

+4

Osobiście popełniłbym błąd po stronie '[is] WriterEnabled'. Oznacza to, że nazwałbym zmienną 'writerEnabled' oraz getter' isWriterEnabled' oraz setter 'setWriterEnabled'. Wynika to bardziej z autouzupełniania kodu niż z konwencji. – MadProgrammer

Odpowiedz

23

Jak daleko jak wiem, to jest tak:

private boolean writerEnabled; 
// with methods like 
public boolean isWriterEnabled(); 
public void setWriterEnabled(boolean enabled); 

Albo, gdy typ to boolean lub Boolean, różnica polega na tym, że Getter zaczyna się od is zamiast get.

Osobiście preferuję podejście isWriterEnabled. Technologie takie jak na przykład JSF respektują ten standard podczas uzyskiwania dostępu do nieruchomości. Wyrażenia EL są uznawane za is i get.

5

Jeśli jest to klasa pisarzy, prawdopodobnie zechcesz usunąć Writer ze swojej zmiennej.

Zazwyczaj nie używam Is w moich nazwach pól, ale w metodach.

coś takiego:

private boolean writerEnabled; 

public boolean isWriterEnabled(); 
public void setWriterEnabled(boolean enabled); 

Chociaż jest to moja osobista konwencja nazewnictwa, powinieneś porozmawiać ze wszystkimi innymi, którzy z którymi pracujesz, aby zobaczyć, co oni korzystać.

2
private boolean writerEnabled; 
public boolean isWriterEnabled() 
public void setWriterEnabled() 
2

Dla getter i setter metod, uważam, że konwencja jest public boolean isWriterEnabled() i public boolean isReaderEnabled(). Jeśli chodzi o zmienną, powinna być private boolean writerEnabled.