JAVA 디자인 모델 의 템 플 릿 모드 를 자세히 설명 합 니 다.
소개 하 다.
의도:작업 중인 알고리즘 의 뼈 대 를 정의 하고 일부 절 차 를 하위 클래스 로 지연 시 킵 니 다.템 플 릿 방법 은 하위 클래스 가 하나의 알고리즘 구 조 를 바 꾸 지 않 고 이 알고리즘 의 특정한 절 차 를 다시 정의 할 수 있 도록 합 니 다.
주요 해결:
일부 방법 은 통용 되 지만,모든 하위 클래스 에서 이 방법 을 다시 썼 다.
언제 사용 할 지:
통용 되 는 방법 이 좀 있다.
어떻게 해결 합 니까?
이 통용 알고리즘 들 을 추상 화하 다.
키 코드:
추상 류 에서 실현 되 고 다른 절 차 는 하위 류 에서 이 루어 진다.
인 스 턴 스 적용:
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 템 플 릿 모델 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.