P.ej.
boolean isCurrent = false;
¿Cómo se llama su captador y definidor?
P.ej.
boolean isCurrent = false;
¿Cómo se llama su captador y definidor?
Respuestas:
Supongamos que tienes
boolean active;
El método de acceso sería
public boolean isActive(){return this.active;}
public void setActive(boolean active){this.active = active;}
Ver también
hasCustomName
, ¿ahora qué debo nombrar para sus métodos getter y setter ? Es setHasCustomName[setter]
y hasCustomName[getter]
bueno?
public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
is
El prefijo debe usarse para variables booleanas y métodos.
isSet
`isVisible
`isFinished
`isFound
`isOpen
Esta es la convención de nomenclatura para métodos booleanos y variables utilizadas por Sun para los paquetes principales de Java. El uso del prefijo is resuelve un problema común de elegir nombres booleanos incorrectos como status o flag. isStatus o isFlag simplemente no encaja, y el programador se ve obligado a elegir nombres más significativos.
Los métodos Setter para variables booleanas deben tener un prefijo establecido como en:
void setFound(boolean isFound);
Hay algunas alternativas al prefijo is que se ajusta mejor en algunas situaciones. Estos son prefijos has, can y should:
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
hasData
, ¿cómo sería el setter? Sin duda, me setData(bool hasData)
parece terriblemente mal ...
has
, can
, should
prefijos no forman parte de la especificación. Consulte JavaBeans Specification 1.01 sección 8.3.
boolean isIsCurrent(){...}
contrario, el marco utilizado para deserializar el objeto se quejaba getter not found for property isCurrent
.
Para un campo llamado isCurrent
, el nombre correcto de getter / setter es setCurrent()
/ isCurrent()
(al menos eso es lo que piensa Eclipse), lo cual es muy confuso y puede rastrearse hasta el problema principal:
Su campo no debe ser llamado isCurrent
en primer lugar. Is es un verbo y los verbos son inapropiados para representar el estado de un Objeto. Use un adjetivo en su lugar, y de repente sus nombres getter / setter tendrán más sentido:
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
get
prefijo al recuperar un Boolean
vs is
para unboolean
Yo creo que sería:
void setCurrent(boolean current)
boolean isCurrent()
¿Quizás es hora de comenzar a revisar esta respuesta? Personalmente me gustaría votar a favor setActive()
y unsetActive()
(alternativas pueden ser setUnActive()
, notActive()
, disable()
, etc, dependiendo del contexto) ya que "setActive" implica que activarlo en todo momento, que usted no lo hace. Es una especie de contador intuitivo decir "setActive" pero en realidad eliminar el estado activo.
Otro problema es que no puede escuchar específicamente un evento SetActive de una manera CQRS, necesitaría escuchar un 'setActiveEvent' y determinar dentro de ese oyente si realmente se activó o no. O, por supuesto, determinar a qué evento llamar cuando se llama, setActive()
pero eso va en contra del principio de Separación de preocupaciones.
Una buena lectura sobre esto es el artículo de FlagArgument de Martin Fowler: http://martinfowler.com/bliki/FlagArgument.html
Sin embargo, vengo de un fondo PHP y veo que esta tendencia se adopta cada vez más. No estoy seguro de cuánto vive esto con el desarrollo de Java.
private boolean current;
public void setCurrent(boolean current){
this.current=current;
}
public boolean hasCurrent(){
return this.current;
}
has
usa para BO o un servicio de este tipo con algún procesamiento, mientras que para POJO lo es is
. y agregue alguna descripción sobre su respuesta.
Setter: public void setCurrent(boolean val)
Getter: public boolean getCurrent()
Para booleanos también puedes usar
public boolean isCurrent()
Como setter, ¿qué tal:
// setter
public void beCurrent(boolean X) {
this.isCurrent = X;
}
o
// setter
public void makeCurrent(boolean X) {
this.isCurrent = X;
}
No estoy seguro de si estos nombres tienen sentido para los hablantes nativos de inglés.