[디자인 모드] - 데 코 레이 터 모드 는 잘 라 줘 야 돼 요. 부침 개 한 세트.
장식 자 모드 적용 필드
장식 자 모드 의 응용 장면
예 를 들 어 제 가 아침 에 가장 좋아 하 는 아침 식 사 는 부침 개 입 니 다. 오 일 스틱 이나 바삭 한 전 을 넣 고 곱 창 을 굽 는 것 입 니 다. 생각 할 수록 맛 있 습 니 다. 먼저 추상 적 인
BatterCake
류 를 만 듭 니 다.public abstract class BatterCake {
protected abstract String getName();
protected abstract int getPrice();
}
기본 부침 개 만 들 기
BaseBatterCake
public class BaseBatterCake extends BatterCake {
@Override
protected String getName() {
return " ";
}
@Override
protected int getPrice() {
return 5;
}
}
패키지 의 추상 장식 자
BatterCakeDecorator
를 더 확장 합 니 다.public abstract class BatterCakeDecorator extends BatterCake{
private BatterCake batterCake;
public BatterCakeDecorator(BatterCake batterCake) {
this.batterCake = batterCake;
}
protected abstract void doSomething();
@Override
protected String getName() {
return this.batterCake.getName();
}
@Override
protected int getPrice() {
return this.batterCake.getPrice();
}
}
달걀 장식 자 클래스 만 들 기
public class EggDecorator extends BatterCakeDecorator {
public EggDecorator(BatterCake batterCake) {
super(batterCake);
}
@Override
protected void doSomething() {
}
@Override
protected String getName() {
return super.getName()+" egg";
}
@Override
protected int getPrice() {
return super.getPrice()+1;
}
}
소시지 인 테 리 어 클래스
public class SausageDecorator extends BatterCakeDecorator {
public SausageDecorator(BatterCake batterCake) {
super(batterCake);
}
@Override
protected void doSomething() {
}
@Override
protected int getPrice() {
return super.getPrice()+2;
}
@Override
protected String getName() {
return super.getName()+" sausage";
}
}
테스트 해 봐.
public class Test {
public static void main(String[] args) {
BatterCake batterCake;
batterCake = new BaseBatterCake();
batterCake = new EggDecorator(batterCake);
batterCake = new EggDecorator(batterCake);
batterCake = new SausageDecorator(batterCake);
System.out.println(batterCake.getName());
System.out.println(batterCake.getPrice());
}
}
테스트 를 통 해 먼저 기초 부침 개 를 만 든 다음 에 세트 내용 을 계속 늘 리 면 가격 도 자동 으로 달라 진 다 는 것 을 알 수 있다.장식 자의 본질 적 인 특징 은 기 존의 유형의 부가 기능 을 추출 하여 기 존의 논 리 를 간소화 하 는 것 이다.
장식 자 모드 와 어댑터 모드 비교
장식 자 모드
어댑터 모드
형식.
특별한 어댑터 모드, 등급 관계 포함
관계
정의.
장식 자 와 피 장식 자 는 모두 같은 인 터 페 이 스 를 실현 했다. 주요 목적 은 확 장 된 후에 도 OOP 관 계 를 유지 하 는 것 이다.
어댑터 와 피 어댑터 는 필연 적 인 관계 가 없 으 며, 일반적으로 계승 또는 대리 의 형식 으로 포장 된다.
관계.
만족
만족 하 다
기능.
덮어 쓰기, 확장 중시
호 환 을 중시 하 다
설계 하 다.
사전에 고려 하 다.
뒷 생각
장식 자 패턴 의 장단 점
장점:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.