Modifier la façon dont vous écrivez un logiciel.
Plutôt que:
public class BreakEncapsulation {
private float currency = 0.0;
public BreakEncapsluation() {
this.currency += 5;
}
public void updateCurrency() {
this.currency = 20.0;
}
public void increaseCurrencyByRate() {
this.currency += 2;
}
public void decreaseCurrencyByRate() {
this.currency -= 2;
}
}
Pour ce faire:
public class HonourEncapsulation {
private float currency;
public HonourEncapsluation() {
setCurrency(getCurrency() + 5);
}
public void updateCurrency() {
setCurrency(20.0);
}
public void increaseCurrencyByRate() {
setCurrency(getCurrency() + getRate());
}
public void decreaseCurrencyByRate() {
setCurrency(getCurrency() - getRate());
}
public void setCurrency(float currency) {
System.out.println("Old currency = " + this.currency);
// Set the break point here. This is the only spot in the entire system
// where the value of currency changes. This idea follows the DRY
// principle: every piece of information should have exactly one
// occurrence.
//
this.currency = currency;
System.out.println("New currency = " + this.currency);
}
private float getCurrency() { return this.currency; }
private float getRate() { return 2.0; }
}
Non seulement cette aide avec l'entretien de votre code (pas de duplication de code), il garde un monde de possibilités ouvertes. Il pourrait ne pas vous aider avec votre problème actuel, mais il vous aidera à éviter un certain nombre de problèmes à l'avenir.
C'est une technique appelée encapsulation, et est étroitement lié à la dissimulation d'information .
Les débogueurs plus anciens que j'ai utilisés appelaient ces 'montres'. Vous pourriez essayer de chercher cela? –