Question

J'ai une situation où j'ai trois exigences:

  1. Initialisation paresseuse - Ne créez pas la collection avant de le demander
  2. Mise en cache - Gardez la collection en mémoire sur l'objet
  3. Réinitialisation - être capable de réinitialiser la collection lorsque vous le souhaitez, au lieu d'obtenir simplement les résultats existants.

Il s'agit simplement d'une optimisation dans une seule classe - elle ne charge rien à partir d'une base de données et idéalement, je voudrais juste un bon modèle de conception de méthode pour cela, pas une conception de classe multiple.

Habituellement, pour l'initialisation paresseuse, j'aurais ceci:

Collection getCollection() {
    if (collection != null) {
         // generate and set collection
    }
    return collection;
}

Mais maintenant, j'ai du mal à décider de la meilleure façon de fournir la réinitialisation d'une nouvelle collection et d'obtenir cette collection. UN fresh Le paramètre booléen fonctionnerait, mais l'ajout d'un paramètre à un Getter ne semble pas se sentir bien (peut-être que c'est le java en moi qui parle - je pourrais être convaincu).

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top