Definição do padrão de modelo: define o esqueleto de um algoritmo em uma operação, atrasando a execução de algumas etapas em sua subclasse.
De fato, as classes abstratas de Java são originalmente padrões de modelo, por isso são muito comuns de usar. E é fácil de entender e usar, vamos começar com um exemplo:
A cópia do código é a seguinte:
referência de classe abstrata pública
{
/**
* A operação a seguir é o que queremos concluir na subclasse*/
Public Abstract Void Benchmark ();
/**
* Número de execução repetida de referência*/
Public Final Long Repeat (int conting) {
if (contagem <= 0)
retornar 0;
outro {
long startTime = System.currenttimemillis ();
para (int i = 0; i <contagem; i ++)
benchmark ();
long stoptime = System.currenttimemillis ();
Retornar StopTime - StartTime;
}
}
}
No exemplo acima, queremos executar a operação Benchmark () repetidamente, mas não especificamos o conteúdo específico de Benchmark (), mas adie -o na sua descrição da subclasse:
A cópia do código é a seguinte:
Methodbenchmark de classe pública estende a referência
{
/**
* Realmente define conteúdo de referência*/
public void benchmark () {
for (int i = 0; i <Integer.max_value; i ++) {
System.out.printtln ("i ="+i);
}
}
}
Neste ponto, o modo de modelo foi concluído, não é muito simples? Veja como usar:
A cópia do código é a seguinte:
Operação de benchmark = new Methodbenchmark ();
longa duração = operação.Repeat (Integer.parseint (args [0] .Trim ()));
System.out.println ("a operação levou" + duração + "milhões de segundos");
Talvez você estivesse se perguntando qual é a utilidade das classes abstratas, mas agora você deve entender completamente, certo? Quanto aos benefícios de fazer isso, é óbvio que é altamente extensível.