디자인 모드 의 장식 (decorator)
// composite
public class Decorator {
//
abstract class Ingredient {
public abstract void getDescription();
}
//
class Bread extends Ingredient {
String desc;
public Bread(String desc) {
this.desc = desc;
}
@Override
public void getDescription() {
System.out.println(desc);
}
}
//
//BreadDecorator Ingredient
abstract class BreadDecorator extends Ingredient {
Ingredient ingredient;
public BreadDecorator(Ingredient ingredient) {
this.ingredient = ingredient;
}
}
//
class Pork extends BreadDecorator {
public Pork(Ingredient ingredient) {
super(ingredient);
}
@Override
public void getDescription() {
ingredient.getDescription();
System.out.println("pork decorate...");
}
}
//
class Vegetable extends BreadDecorator {
public Vegetable(Ingredient ingredient) {
super(ingredient);
}
@Override
public void getDescription() {
ingredient.getDescription();
System.out.println("vegetable decorate...");
}
}
public static void main(String[] args){
Decorator decorator = new Decorator();
Ingredient ingredient = decorator.new Pork(decorator.new Bread("pork bread..."));
ingredient.getDescription();
Ingredient ingredient2 = decorator.new Vegetable(decorator.new Pork(decorator.new Bread("vegetable pork bread...")));
ingredient2.getDescription();
}
}
//http://miaoxiaodong78.blog.163.com/blog/static/18765136200701232434996/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 장식 모드(Decorator Pattern) 상세 정보 및 실례 코드데코더 모드(Decorator Pattern)는 기존 객체에 새 기능을 추가하고 구조를 변경하지 않습니다.이런 유형의 디자인 모델은 구조형 모델에 속하는데 이것은 기존의 유형으로서의 포장이다. 이런 모델은 기존의 클...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.