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 !