Vorlagenmusterdefinition: Definiert das Skelett eines Algorithmus in einer Operation und verzögert die Ausführung einiger Schritte in seine Unterklasse.
Tatsächlich sind Java -abstrakte Klassen ursprünglich Vorlagenmuster, daher sind sie sehr häufig zu verwenden. Und es ist leicht zu verstehen und zu verwenden. Beginnen wir mit einem Beispiel:
Die Codekopie lautet wie folgt:
öffentliche abstrakte Klasse Benchmark
{
/**
* Die folgende Operation ist das, was wir in der Unterklasse abschließen möchten*/
öffentliche abstrakte Leere Benchmark ();
/**
* Anzahl der wiederholten Benchmark -Ausführung*/
öffentliche letzte lange Wiederholung (int count) {
if (count <= 0)
Rückkehr 0;
anders {
Long start time = system.currenttimemillis ();
für (int i = 0; i <count; i ++)
Benchmark ();
Long Stoptime = System.currentTimemillis ();
Return Stoptime - StartTime;
}
}
}
Im obigen Beispiel möchten wir die Benchmark () -Operation wiederholt durchführen, aber wir geben nicht den spezifischen Inhalt von Benchmark () an, sondern verzögern sie auf die Beschreibung der Unterklasse:
Die Codekopie lautet wie folgt:
öffentliche Klasse Methodbenchmark erweitert den Benchmark
{
/**
* Definieren Sie wirklich Benchmark -Inhalte*/
public void benchmark () {
für (int i = 0; i <integer.max_value; i ++) {
System.out.printtln ("i ="+i);
}
}
}
Zu diesem Zeitpunkt wurde der Vorlagenmodus abgeschlossen. Ist es nicht sehr einfach? Sehen Sie, wie man verwendet:
Die Codekopie lautet wie folgt:
Benchmark -Operation = neuer MethodeBenchmark ();
Langdauer = Operation.Repeat (Integer.ParseInt (args [0] .trim ()));
System.out.println ("Die Operation hat" + Dauer + "Millionseconds");
Vielleicht haben Sie sich gefragt, was die Verwendung abstrakter Klassen ist, aber jetzt sollten Sie es vollständig verstehen, oder? In Bezug auf die Vorteile ist es offensichtlich, dass es in Zukunft sehr erweiterbar ist.