Me gusta usar un signo de interrogación al final de los nombres de métodos / funciones en otros idiomas. Java no me deja hacer esto. Como solución alternativa, ¿de qué otra manera puedo nombrar métodos de retorno booleanos en Java? El uso de un is
, has
, should
, can
en la parte delantera de un sonido método bien para algunos casos. ¿Existe una mejor manera de nombrar tales métodos?
Por ejemplo, createFreshSnapshot?
java
methods
naming-conventions
letronje
fuente
fuente
?
nombre de método?p
al final del nombre del métodoRespuestas:
La convención es hacer una pregunta en el nombre.
Aquí hay algunos ejemplos que se pueden encontrar en el JDK:
De esa manera, los nombres se leen como si tuvieran un signo de interrogación al final.
Y, entonces,
true
significa sí yfalse
significa no.O puede leerlo como una afirmación:
Nota:
A veces es posible que desee nombrar un método como
createFreshSnapshot?
. Sin el signo de interrogación, el nombre implica que el método debería crear una instantánea, en lugar de verificar si se requiere una.En este caso, debe repensar lo que realmente está preguntando. Algo como
isSnapshotExpired
es un nombre mucho mejor y transmite lo que el método le dirá cuando se lo llame. Seguir un patrón como este también puede ayudar a mantener más funciones puras y sin efectos secundarios.Si usted hace una búsqueda de Google para
isEmpty()
la API de Java, se obtiene una gran cantidad de resultados.fuente
isSnapshotExpired
o algo así. (según sus criterios)shouldHeartbeat()
método.isEmpty()
yhasChildren()
son preguntas y no afirmaciones ? En realidad, se lee un poco mejor en inglés si piensa en esos nombres como afirmaciones o predicados.Si desea que su clase sea compatible con la especificación de Java Beans , de modo que la utilización de herramientas de reflexión (por ejemplo JavaBuilders , JGoodies Binding ) pueden reconocer captadores de Boole, ya sea para uso
getXXXX()
oisXXXX()
como un nombre de método. De la especificación de Java Beans:fuente
public boolean is<PropertyName>();
parece un genérico.Quiero publicar este enlace, ya que puede ayudar más a los píos que verifican esta respuesta y buscan más convenciones de estilo Java
Pautas de estilo de programación de Java
El elemento "2.13 es un prefijo que se debe utilizar para las variables y métodos booleanos". es específicamente relevante y sugiere el prefijo is .
La guía de estilo continúa sugiriendo:
Si sigue las Pautas, creo que el método apropiado se llamaría:
fuente
Para los métodos que pueden fallar, es decir, si especifica boolean como tipo de retorno, usaría el prefijo
try
:Para todos los demás casos, use prefijos como
is..
has..
was..
can..
allows..
..fuente
El estándar es el uso de 'es' o 'tiene' como prefijo. Por ejemplo
isValid
,hasChildren
.fuente
is
es el que me he encontrado más que ningún otro. Sin embargo, cualquier cosa que tenga sentido en la situación actual es la mejor opción.fuente
Quiero señalar una vista diferente sobre esta convención de nomenclatura general , por ejemplo:
ver java.util.Set :
boolean add(E e)
donde la justificación es:
Realice algún procesamiento y luego informe si tuvo éxito o no .
Si bien
return
es cierto queboolean
el nombre del método debe indicar que el procesamiento debe completarse en lugar del tipo de resultado (booleano para este ejemplo).Su
createFreshSnapshot
ejemplo me parece más relacionado con este punto de vista porque parece significar esto: cree una instantánea nueva y luego informe si la operación de creación tuvo éxito. Teniendo en cuenta este razonamiento, el nombrecreateFreshSnapshot
parece ser el mejor para su situación.fuente