자바 노트 - 디자인 모델 의 모델 링 방법 모델
3772 단어 디자인 모드
소프트웨어 개발 에서 도 비슷 한 상황 이 발생 할 수 있다. 어떤 방법의 실현 은 여러 가지 절차 (예 를 들 어 '한 턱 내기') 가 필요 하 다. 그 중에서 어떤 절 차 는 고정 적 인 것 (예 를 들 어 '주문' 과 '계산') 이 고 어떤 절 차 는 고정 적 이지 않 으 며 가 변성 (예 를 들 어 '음식 먹 기') 이 존재 한다.코드 의 재 활용 성과 시스템 의 유연성 을 향상 시 키 기 위해 템 플 릿 방법 모델 이 라 고 불 리 는 디자인 모델 로 이런 상황 을 디자인 할 수 있다. 템 플 릿 방법 모델 에서 기능 을 실현 하 는 모든 절차 에 대응 하 는 방법 을 기본 적 인 방법 (예 를 들 어 '주문', '음식 먹 기' 와 '계산') 이 라 고 부른다.이러한 기본 적 인 방법 을 호출 하여 기본 적 인 방법의 실행 순 서 를 동시에 정의 하 는 방법 을 템 플 릿 방법 (예 를 들 어 '한 턱 내기') 이 라 고 한다.
템 플 릿 방법 모델 에서 같은 코드 를 부모 클래스 에 넣 을 수 있다. 예 를 들 어 템 플 릿 방법 인 '한 턱 내기' 와 기본 적 인 방법 인 '주문 하기' 와 '계산 하기' 의 실현 을 부모 클래스 에 두 고 기본 적 인 방법 인 '음식 먹 기' 에 대해 아버지 클래스 에서 하나의 성명 만 하고 이 를 서로 다른 하위 클래스 에 두 고 한 가지 유형 에서 '노 란 닭 찜' 의 실현 을 제공 할 수 있다.또 다른 자 류 는 '만 한 전석 먹 기' 의 실현 을 제공한다.템 플 릿 방법 모델 을 사용 함으로써 한편 으로 는 코드 의 재 활용 성 을 향상 시 켰 고 다른 한편 으로 는 대상 을 대상 으로 하 는 다 형 성 을 이용 하여 운영 할 때 구체 적 인 자 류 를 선택 하여 완전한 '초대' 방법 을 실현 하여 시스템 의 유연성 과 확장 성 을 높 일 수 있다.
모드 방법 모드 정의: 하나의 모델 방법 은 추상 적 인 조작 으로 알고리즘 을 정의 하고 하위 클래스 는 이러한 조작 을 다시 정의 하여 구체 적 인 행 위 를 제공 합 니 다.
의도: 한 작업 에서 알고리즘 프레임 워 크 를 정의 하고 일부 절 차 를 하위 클래스 로 미 루 었 습 니 다.모드 방법 모드 는 하위 클래스 가 알고리즘 구 조 를 바 꾸 지 않 고 특정한 알고리즘 절 차 를 다시 정의 하도록 합 니 다.
템 플 릿 방법 모델 을 사용 하면 복잡 한 절차 의 실현 절 차 를 일련의 기본 적 인 방법 에 봉 하여 추상 적 인 부모 클래스 에서 템 플 릿 방법 이 라 고 불 리 는 방법 을 제공 하여 이러한 기본 적 인 방법의 집행 순 서 를 정의 할 수 있 고 그 하위 클래스 를 통 해 부모 클래스 의 특정한 절 차 를 덮어 서 같은 알고리즘 프레임 워 크 가 서로 다른 실행 결 과 를 얻 을 수 있다.
템 플 릿 방법 모델 은 템 플 릿 방법 으로 알고리즘 프레임 워 크 를 정의 하고 일부 구체 적 인 절차 의 실현 은 하위 클래스 에서 이 루어 질 수 있 습 니 다.
템 플 릿 방법 모드 의 역할:
(1) AbstractClass (추상 류): 추상 류 에서 일련의 기본 적 인 조작 을 정의 했다. 이런 기본 적 인 조작 은 구체 적 일 수도 있 고 추상 적 일 수도 있다. 모든 기본 적 인 조작 이 대응 하 는 알고리즘 의 한 단계 가 그 하위 클래스 에서 이러한 절 차 를 다시 정의 하거나 실현 할 수 있다.이 동시에 추상 류 에서 하나의 템 플 릿 방법 을 실현 하여 알고리즘 의 구 조 를 정의 하 는 데 사용 했다. 템 플 릿 방법 은 추상 류 에서 실현 하 는 기본 적 인 방법 을 호출 할 수 있 을 뿐만 아니 라 추상 류 의 하위 류 에서 실현 하 는 기본 적 인 방법 도 호출 할 수 있 고 다른 대상 에서 의 방법 도 호출 할 수 있다.
(2) ConcreteClass (구체 적 인 하위 클래스): 추상 적 인 하위 클래스 로 부모 클래스 에서 설명 하 는 추상 적 인 기본 작업 을 실현 하여 하위 클래스 의 특정한 알고리즘 을 완성 하 는 절 차 를 실현 하고 부모 클래스 에서 이미 실 현 된 구체 적 인 기본 작업 을 덮어 쓸 수 있다.
구체 적 인 실현 코드 는 다음 과 같다.
추상 적 역할
public abstract class ModeMethod {
/**
* :
*/
public void treat() {
order();//
eatSomething();//
payMoney();//
}
private void order() {
System.out.println(" , ");
System.out.println(" , ");
System.out.println(" ");
}
abstract void eatSomething();
private void payMoney() {
System.out.println(" , ");
System.out.println(" ");
}
}
구체 적 인 하위 역할
하위 클래스 1
하위 클래스 2
public class Guest1 extends ModeMethod{
@Override
void eatSomething() {
System.out.println(" 1 ");
}
}
테스트 클래스
결 과 는 다음 과 같다.
public class Guest2 extends ModeMethod{
@Override
void eatSomething() {
System.out.println(" 2 , , , ....");
}
}
템 플 릿 방법 모드 에 서 는 대상 을 대상 으로 하 는 다 형 성 때문에 하위 클래스 대상 이 실 행 될 때 부모 클래스 대상 을 덮어 씁 니 다. 하위 클래스 에서 정의 하 는 방법 도 부모 클래스 에서 정의 하 는 방법 을 덮어 씁 니 다. 따라서 프로그램 이 실 행 될 때 구체 적 인 하위 클래스 의 기본 방법 은 부모 클래스 에서 정의 하 는 기본 방법 을 덮어 씁 니 다.
글 참고:http://blog.csdn.net/lovelion/article/details/8299794
위 에서 말 한 것 에 대해 궁금 한 점 이 있 으 면 지적 해 주 십시오. 감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.