Chciałbym wiedzieć w jakich scenariuszach używasz enkapsulacji. Celem tego pytania jest współpraca przy współpracy. Więc podziel się swoim doświadczeniem, gdy temat jest hermetyzacją.W jakich scenariuszach używasz enkapsulacji?
Niektóre scenariusze:
Obliczone własności
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;
}
}
domeny własnym walidacji obiektów
public class Person {
private String name;
public void setName(String name) {
if(StringUtils.isBlank(name)) {
throw new NotEmptyException("name", name);
}
this.name = name;
}
}
Sprawia stosowanie innego rodzaju zajęć dla jakiegoś szczególnego zachowania
public class Person {
private MutableInt id = new MutableInt();
/**
* Integer itself is immutable
*/
public Integer getId() {
retur id.intValue();
}
}
Konwersja
public class Person {
public String enabled;
public boolean isEnabled() {
return "Y".equals(enabled);
}
}
Twoja metoda "isEnabled" może zostać skrócona do "return" Y ".equals (enabled);'. – whiskeysierra