Latest web development tutorials

템플릿 모드

템플릿 모드 (템플릿 패턴), 그리고이 방법 / 템플릿을 개시하고 실행하는 방법을 정의하는 추상 클래스에서. 그것의 서브 클래스는 달성 할 수있는 방법을 재정의해야하지만, 추상 클래스를 정의 할 것이라고합니다. 디자인 패턴이 유형의 행동 패턴에 속한다.

소개

의도 : 서브 클래스에 몇 가지 단계를 연기하면서, 해골 동작 알고리즘을 정의합니다.템플릿 메소드는 서브 클래스가 알고리즘의 특정 단계를 다시 정의 할 수있는 알고리즘 구조를 변경할 수 있습니다.

주요 솔루션 : 일반적인 방법,하지만 각각의 서브 클래스에서이 방법을 다시 작성합니다.

사용하는 경우 : 몇 가지 일반적인 방법이 있습니다.

해결 방법 : 추상이 일반 알고리즘입니다.

키 코드 : 추상 클래스는 서브 클래스 구현의 다른 단계를 구현합니다.

적용 예는 : 내장하는 집에서 기초가 배선 수도관이 같을 때 1 만 건물 후반 벽장 플러스 플러스 울타리 차이가있다.2, 서쪽으로 여행 (81) 어려운 내부 좋은 부처님을 설정,이 최상위 논리 프레임 워크입니다. 3, Spirng 최대 절전 모드 지원, 일부는 이미 쓰기 좋은 코드 규범, 기업이 저장 될 수 있습니다 직접 던져 반복하지 않은 세션, 세션 닫기를 획득 열린 트랜잭션, 그리고 다른 프로그래머로 캡슐화 할 수있는 좋은 방법을 제공하고있다.

장점 : (1) 같은 패키지의 일부인 변수 부분을 연장.2, 관리가 용이 ​​공통 코드의 압축을 풉니 다. 도 3에서, 동작은 부모 클래스, 서브 클래스 구현에 의해 제어된다.

단점 : 다른 구현 예들 각각은 시스템이 더 크게 만들고, 클래스의 수가 증가하게 달성하기 위해 서브 클래스를 필요로한다.

사용 시나리오 : 1, 복수의 서브 클래스의 일반적인 방법과 동일한 논리.도 2를 참조하면, 중요한 복잡한 방법은 템플릿 방법으로 간주 될 수있다.

참고 : 악성 일반 템플릿 방법과 함께 작업, 최종 키워드입니다을 방지하기 위해.

실현

템플릿 메소드가 마지막으로 설정되는 것을 우리는 사용자 정의 액션게임추상 클래스를 만들 것이다, 그래서 그것을 덮어 쓰지 않습니다.크리켓과축구게임은추상 클래스를 대체 엔티티 클래스의 확장입니다.

TemplatePatternDemo, 우리의데모 클래스는게임 모드를사용하여 템플릿의 사용을 설명합니다.

템플릿 패턴 UML 다이어그램

1 단계

추상 클래스를 만들고, 그 템플릿 메소드가 마지막으로 설정됩니다.

Game.java

공개 추상 클래스 게임 {
   추상적 인 공극 초기화 ();
   추상 무효 startPlay ();
   추상 공극 엔드 플레이 ();

   // 템플릿 공공 최종 무효 재생 () {

      //) (게임 초기화를 초기화;

      게임 startPlay ()를 시작 //;

      // 종반 엔드 플레이 ();
   }
}

2 단계

클래스 위의 엔티티 클래스를 확장 만듭니다.

Cricket.java

공용 클래스 크리켓 게임을 {확장

   @Override
   무효 엔드 플레이 () {
      에서 System.out.println는 ( "크리켓 게임 완료!");
   }

   @Override
   무효 초기화 () {
      System.out.println에 (! "크리켓 게임 초기화 됨 시작을 재생합니다.");
   }

   @Override
   무효 startPlay () {
      에서 System.out.println는 ( "크리켓 게임은 게임을 즐길 시작.!");
   }
}

Football.java

공용 클래스 축구 게임 {확장

   @Override
   무효 엔드 플레이 () {
      System.out.println에 ( "축구 게임은 완료!");
   }

   @Override
   무효 초기화 () {
      에서 System.out.println ( "! 축구 게임으로 초기화 시작을 재생합니다.");
   }

   @Override
   무효 startPlay () {
      에서 System.out.println는 ( "축구 게임은 게임을 즐길 시작.!");
   }
}

3 단계

게임을 보여주기 위해 템플릿 방법 플레이 ()를 사용하여게임정의된다.

TemplatePatternDemo.java

공용 클래스 TemplatePatternDemo {
   공공 정적 무효 메인 (문자열 []에 args) {

      게임 게임 = 새로운 크리켓 ();
      game.play ();
      에서 System.out.println ();
      게임 = 새로운 축구 ();
      game.play ();		
   }
}

4 단계

출력을 확인합니다.

크리켓 게임 초기화는! 연주 시작합니다.
크리켓 게임 시작. 게임을 즐기십시오!
크리켓 게임 완료!

축구 게임으로 초기화가! 연주 시작합니다.
축구 게임 시작. 게임을 즐기십시오!
축구 게임 완료!