Maison  >  Article  >  Java  >  Introduction au modèle de modèle de modèle de conception Java (modèle de modèle)

Introduction au modèle de modèle de modèle de conception Java (modèle de modèle)

高洛峰
高洛峰original
2017-01-19 16:57:271317parcourir

Définition de modèle de modèle : Définir le squelette d'un algorithme dans une opération, en différant l'exécution de certaines étapes à ses sous-classes.

En fait, la classe abstraite de Java est à l'origine le modèle Template, elle est donc très couramment utilisée. Et c'est facile à comprendre et à utiliser. Commençons directement par un exemple :

public abstract class Benchmark
{
  /**
  * 下面操作是我们希望在子类中完成
  */
  public abstract void benchmark();
  /**
  * 重复执行benchmark次数
  */
  public final long repeat (int count) {
    if (count <= 0)
      return 0;
    else {
      long startTime = System.currentTimeMillis();
            for (int i = 0; i < count; i++)
          benchmark();
                long stopTime = System.currentTimeMillis();
                return stopTime - startTime;
          }
        }
}

Dans l'exemple ci-dessus, nous voulons effectuer à plusieurs reprises l'opération benchmark(), mais le contenu spécifique de benchmark() ne l'est pas. expliqué, mais retardé Décrivez-le dans ses sous-classes :

public class MethodBenchmark extends Benchmark
{
  /**
  * 真正定义benchmark内容
  */
  public void benchmark() {
    for (int i = 0; i < Integer.MAX_VALUE; i++){
      System.out.printtln("i="+i);    
       }
  }
}

À ce stade, le mode Modèle est terminé. N'est-ce pas très simple ? Découvrez comment l'utiliser :

   Benchmark operation = new MethodBenchmark();
    long duration = operation.repeat(Integer.parseInt(args[0].trim()));
    System.out.println("The operation took " + duration + " milliseconds");

Peut-être vous posiez-vous des questions sur l'utilisation des classes abstraites auparavant, mais maintenant vous devriez le comprendre complètement, n'est-ce pas ? Quant aux avantages de cette opération, il est évident qu'elle est hautement évolutive. Si le contenu du Benchmark change à l'avenir, il me suffit de créer une autre sous-classe héritée sans modifier les autres codes d'application.

Pour plus d'articles liés à l'introduction du mode modèle (mode Modèle) dans les modèles de conception Java, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn