/** feuille du motif composite */ public class Travailleur extends Person { // Attributs pour mémoriser les résultats private Integer bestPartyMemo = null; private Integer bestPartyWithoutMeMemo = null; /** constructeur * * @param n fun factor */ public Travailleur(int n) { super(n); } /** * @return fête sans le travailleur */ @Override public int bestPartyWithoutMe() { if (this.bestPartyWithoutMeMemo == null) { // Si non calculé this.bestPartyWithoutMeMemo = 0; // Toujours 0 car le travailleur n'est pas invité } return this.bestPartyWithoutMeMemo; } /** * @return fête avec le travailleur */ @Override public int bestParty() { if (this.bestPartyMemo == null) { // Si non calculé this.bestPartyMemo = getFunFactor(); // La fête inclut uniquement le travailleur } return this.bestPartyMemo; } }