Me gustaría saber en qué escenarios utiliza la encapsulación. El propósito de esta pregunta es colaborativo. Así que siéntete libre de compartir tu propia experiencia cuando el tema esté encapsulado.¿En qué escenarios usa encapsulación?
Algunos escenarios:
propiedad calculada
public class Order {
private List<ListItem> listItems = new ArrayList<ListItem>();
public double getTotal() {
double total = 0;
for(ListItem listItem: listItems)
total += listItem.getQuantity() * listItem.getPropduct().getPrice();
return total;
}
}
objetos de dominio autovalidante
public class Person {
private String name;
public void setName(String name) {
if(StringUtils.isBlank(name)) {
throw new NotEmptyException("name", name);
}
this.name = name;
}
}
Hace uso de otro tipo de clases por algún comportamiento especial
public class Person {
private MutableInt id = new MutableInt();
/**
* Integer itself is immutable
*/
public Integer getId() {
retur id.intValue();
}
}
Conversión
public class Person {
public String enabled;
public boolean isEnabled() {
return "Y".equals(enabled);
}
}
Su método 'isEnabled' puede acortarse a' return 'Y' .equals (habilitado); '. – whiskeysierra