JAVA 디자인 모델 의 템 플 릿 모드 를 자세히 설명 합 니 다.

템 플 릿 모드(Template Pattern)에서 추상 류 는 이 를 실행 하 는 방법/템 플 릿 을 공개 적 으로 정의 합 니 다.그것 의 하위 클래스 는 필요 에 따라 다시 쓰 는 방법 으로 이 루어 질 수 있 지만,호출 은 추상 클래스 에서 정 의 된 방식 으로 진 행 될 것 이다.이런 유형의 디자인 모델 은 행위 형 모델 에 속한다.
소개 하 다.
의도:작업 중인 알고리즘 의 뼈 대 를 정의 하고 일부 절 차 를 하위 클래스 로 지연 시 킵 니 다.템 플 릿 방법 은 하위 클래스 가 하나의 알고리즘 구 조 를 바 꾸 지 않 고 이 알고리즘 의 특정한 절 차 를 다시 정의 할 수 있 도록 합 니 다.
주요 해결:
일부 방법 은 통용 되 지만,모든 하위 클래스 에서 이 방법 을 다시 썼 다.
언제 사용 할 지:
통용 되 는 방법 이 좀 있다.
어떻게 해결 합 니까?
이 통용 알고리즘 들 을 추상 화하 다.
키 코드:
추상 류 에서 실현 되 고 다른 절 차 는 하위 류 에서 이 루어 진다.
인 스 턴 스 적용:
1.집 을 지 을 때 지반,배선,수도관 이 똑 같 고 건축 후기 에 만 벽장 에 울 타 리 를 넣 는 등 차이 가 있 습 니 다.
2.서유기 에서 보살 이 정 한 81 난 은 바로 꼭대기 층 의 논리 적 골격 이다.
3.spring 에서 Hibernate 에 대한 지원 은 이미 정 해진 방법 을 패키지 합 니 다.예 를 들 어 사 무 를 시작 하거나 Session 을 가 져 오 거나 Session 을 닫 는 등 프로그래머 가 규범 화 된 코드 를 반복 하지 않 고 실 체 를 잃 어 버 리 면 저장 할 수 있 습 니 다.
장점:
1.포장 불변 부분,확장 가 변 부분.
2.공공 코드 를 추출 하여 유지 하기 쉽 습 니 다.
3.행 위 는 부류 에 의 해 통제 되 고 부류 에 의 해 이 루어 진다.
단점:
모든 서로 다른 실현 은 하나의 하위 클래스 로 이 루어 져 야 하기 때문에 클래스 의 개수 가 증가 하고 시스템 을 더욱 방대 하 게 한다.
사용 필드:
1.여러 개의 하위 클래스 가 공유 하 는 방법 이 있 고 논리 가 같 습 니 다.
2.중요 하고 복잡 한 방법 은 모델 로 고려 할 수 있다.
주의사항:
악성 조작 을 방지 하기 위해 서 일반 템 플 릿 방법 에는 final 키 워드 를 추가 합 니 다.
이루어지다
우 리 는 동작 을 정의 하 는 Game 추상 류 를 만 들 것 입 니 다.그 중에서 템 플 릿 방법 은 final 로 설정 하면 다시 쓰 이지 않 습 니 다.Cricket 과 Football 은 Game 의 실체 류 를 확장 시 켰 고 추상 적 인 방법 을 다시 썼 다.
Template PatternDemo,우리 의 프 리 젠 테 이 션 클래스 는 Game 을 사용 하여 템 플 릿 모드 의 용법 을 보 여 줍 니 다.

단계 1
템 플 릿 방법 이 final 로 설정 되 어 있 는 추상 적 인 클래스 를 만 듭 니 다.

public abstract class Game {
 abstract void initialize();
 abstract void startPlay();
 abstract void endPlay();
 
 //  
 public final void play(){
 
 //     
 initialize();
 
 //    
 startPlay();
 
 //    
 endPlay();
 }
}
단계 2
상기 클래스 를 확장 하 는 실체 클래스 를 만 듭 니 다.

public class Cricket extends Game {
 
 @Override
 void endPlay() {
 System.out.println("Cricket Game Finished!");
 }
 
 @Override
 void initialize() {
 System.out.println("Cricket Game Initialized! Start playing.");
 }
 
 @Override
 void startPlay() {
 System.out.println("Cricket Game Started. Enjoy the game!");
 }
}

public class Football extends Game {
 
 @Override
 void endPlay() {
 System.out.println("Football Game Finished!");
 }
 
 @Override
 void initialize() {
 System.out.println("Football Game Initialized! Start playing.");
 }
 
 @Override
 void startPlay() {
 System.out.println("Football Game Started. Enjoy the game!");
 }
}
단계 3
게임 의 템 플 릿 방법 play()를 사용 하여 게임 의 정의 방식 을 보 여 줍 니 다.

public class TemplatePatternDemo {
 public static void main(String[] args) {
 
 Game game = new Cricket();
 game.play();
 System.out.println();
 game = new Football();
 game.play(); 
 }
}
단계 4
실행 프로그램,출력 결과:
Cricket Game Initialized! Start playing.
Cricket Game Started. Enjoy the game!
Cricket Game Finished!
Football Game Initialized! Start playing.
Football Game Started. Enjoy the game!
Football Game Finished!
이상 은 JAVA 디자인 모델 의 템 플 릿 모델 에 대한 상세 한 내용 입 니 다.JAVA 템 플 릿 모델 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!

좋은 웹페이지 즐겨찾기