템플릿 패턴 정의 : 작업에서 알고리즘의 골격을 정의하여 일부 단계를 서브 클래스로 실행하는 것을 지연시킵니다.
실제로 Java Abstract 클래스는 원래 템플릿 패턴이므로 사용하는 것이 일반적입니다. 이해하고 사용하기 쉽습니다. 예에서 시작합시다.
코드 사본은 다음과 같습니다.
공개 초록 수업 벤치 마크
{
/**
* 다음 작업은 서브 클래스에서 완료하려는 것입니다*/
공개 초록 void Benchmark ();
/**
* 반복 벤치 마크 실행 수*/
공개 최종 장거리 반복 (int count) {
if (count <= 0)
반환 0;
또 다른 {
Long StartTime = System.CurrentTimeMillis ();
for (int i = 0; i <count; i ++)
기준();
Long Stoptime = System.CurrentTimeMillis ();
반환 정지 시간 - 시작 시간;
}
}
}
위의 예에서는 Benchmark () 작업을 반복적으로 수행하려고하지만 Benchmark ()의 특정 컨텐츠를 지정하지는 않지만 서브 클래스 설명으로 지연됩니다.
코드 사본은 다음과 같습니다.
공개 클래스 MethodBenchmark는 벤치 마크를 확장합니다
{
/**
* 벤치 마크 컨텐츠를 실제로 정의하십시오*/
Public Void Benchmark () {
for (int i = 0; i <integer.max_value; i ++) {
System.out.printtln ( "i ="+i);
}
}
}
이 시점에서 템플릿 모드가 완료되었는데 그다지 간단하지 않습니까? 사용 방법보기 :
코드 사본은 다음과 같습니다.
벤치 마크 작동 = 새로운 MethodBenchmark ();
긴 시간 = Operation.Repeat (integer.parseint (args [0] .trim ()));
System.out.println ( "작업은" + duration + "millioneconds");
어쩌면 당신은 추상 수업의 사용이 무엇인지 궁금했지만 이제는 그것을 완전히 이해해야합니까? 이를 수행하는 이점은 향후 확장 가능하다는 것이 분명합니다.