English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글은 Java로 간단한 디코레이터 디자인 패턴을 구현하는 내용을 주로 소개합니다:
먼저 디코레이터 디자인 패턴의 클래스 그래프를 보겠습니다:
그림에서 볼 수 있듯이, 우리는 Component 인터페이스의 어떤 구현 클래스를 장식할 수 있으며, 이 구현 클래스는 디코레이터 자체도 포함됩니다. 디코레이터 자체도 다시 장식될 수 있습니다.
이 JSON은 Java로 구현된 간단한 디코레이터 디자인 패턴을 제공하며, 기본적으로 커피를 추가하고, 우유, 쇼콜릿, 설탕을 추가할 수 있는 디코레이터 시스템을 제공합니다.
interface Component { void method(); } class Coffee implements Component { @Override public void method() { // TODO Auto-generated method stub System.out.println("倒入咖啡"); } } class Decorator implements Component { public Component comp; public Decorator(Component comp) { this.comp = comp; } @Override public void method() { // TODO Auto-generated method stub comp.method(); } } class ConcreteDecorateA extends Decorator { public Component comp; public ConcreteDecorateA(Component comp) { super(comp); this.comp = comp; } public void method1() { System.out.println("倒入牛奶"); } public void method2() { System.out.println("加入糖 "); } public void method() { super.method(); method1(); method2(); } } class ConcreteDecorateB extends Decorator { public Component comp; public ConcreteDecorateB(Component comp) { super(comp); this.comp = comp; } public void method1() { System.out.println("초콜릿 추가"); } public void method() { super.method(); method1(); } } public class TestDecoratePattern { public static void main(String[] args) { Component comp = new Coffee(); comp.method(); System.out.println("--------------------------------------------------"); Component comp1 = new ConcreteDecorateA(comp); comp1.method(); System.out.println("--------------------------------------------------"); Component comp2 = new ConcreteDecorateB(comp1); comp2.method(); System.out.println("--------------------------------------------------"); Component comp3 = new ConcreteDecorateB(new ConcreteDecorateA(new Coffee())); comp3.method(); System.out.println("--------------------------------------------------"); Component comp4 = new ConcreteDecorateA(new ConcreteDecorateB(new Coffee())); comp4.method(); } }
실행 결과:
이것이 이 문서의 전부입니다. 많은 도움이 되었기를 바랍니다. 또한, 다음을 많이 지원해 주시기를 바랍니다. 노래教程.
고지: 이 문서의 내용은 인터넷에서 가져왔으며, 원작자의 소유물입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공 편집을하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 문제가 있는 내용을 발견하면 메일을 notice#w로 보내 주시기 바랍니다.3codebox.com(메일을 보내는 경우, #을 @으로 변경하십시오. 신고를 하시고 관련 증거를 제공하십시오. 실제로 확인되면, 이 사이트는 즉시 위반된 내용을 삭제합니다.)