Comment puis-je faire une boucle par une Liste<T> en utilisant le modèle de la méthode de modèle?

StackOverflow https://stackoverflow.com//questions/9656834

Question

Je suis à la recherche d'un exemple de mise en œuvre du modèle-méthode de modèle en Java.Supposons, par exemple, je voudrais créer une classe générique qui peut faire une boucle par un List<T> et exécuter une méthode de modèle avec signature void execute(T t) sur chaque élément de type T dans la liste.

Était-ce utile?

La solution

Il est tout à fait clair Java exemple dans le Article de Wikipedia pour la méthode de Modèle de modèle.

Le concept de base du modèle est que la variable parties du code sont cassés dans les méthodes.Qui permet des parties communes à rester dans une super-classe, tandis que les classes descendantes de mettre en œuvre les méthodes qui correspondent à la variable de pièces, offrant un comportement différent, tel que requis.

Si vous voulais rester proche de la vulgate de la mise en œuvre du modèle, votre code doit être le long de ces lignes:

public abstract class TemplateMethodLoop<T> {
    public abstract void execute(T t);

    public void loop(List<T> array) {
        for (T t : array) {
            this.execute(t);
        }
    }
}

public class TemplateMethodPatternClient {
    public void stringListPrinter(List<String> stringList) {
        new TemplateMethodLoop<String>() {
            public void execute(String string) {
                System.out.println(string);
            }
        }.loop(stringList);
    }
}

Notez que dans ce cas, la mise en œuvre concrète du comportement requis se trouve dans l'anonymat intérieure classe au sein de l' stringListPrinter() méthode qui s'étend l' TemplateMethodLoop super-classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top