Definición del patrón de plantilla: define el esqueleto de un algoritmo en una operación, retrasando la ejecución de algunos pasos a su subclase.
De hecho, las clases abstractas de Java son originalmente patrones de plantilla, por lo que son muy comunes para usar. Y es fácil de entender y usar, comencemos con un ejemplo:
La copia del código es la siguiente:
punto de referencia de clase abstracta pública
{
/**
* La siguiente operación es lo que queremos completar en la subclase*/
Public Abstract Void Benchmark ();
/**
* Número de ejecución de referencia repetida*/
Public Final Long Repet (int count) {
if (Count <= 0)
regresar 0;
demás {
Long Starttime = System.CurrentTimemillis ();
para (int i = 0; i <count; i ++)
punto de referencia();
Long Stoptime = System.CurrentTimemillis ();
Return Stoptime - Hora de inicio;
}
}
}
En el ejemplo anterior, queremos realizar la operación Benchmark () repetidamente, pero no especificamos el contenido específico de Benchmark (), pero lo retrasamos a su descripción de la subclase:
La copia del código es la siguiente:
Methodbenchmark de clase pública extiende Benchmark
{
/**
* Defina realmente el contenido de referencia*/
public void Benchmark () {
para (int i = 0; i <integer.max_value; i ++) {
System.out.printtln ("i ="+i);
}
}
}
En este punto, el modo de plantilla se ha completado, ¿no es muy simple? Vea cómo usar:
La copia del código es la siguiente:
Operación de referencia = nuevo métodoBenchmark ();
duración larga = operation.repeat (integer.parseInt (args [0] .trim ()));
System.out.println ("La operación tomó" + duración + "millones de segundos");
Tal vez te estabas preguntando cuál es el uso de clases abstractas, pero ahora deberías entenderlo por completo, ¿verdad? En cuanto a los beneficios de hacer esto, es obvio que es altamente extensible.