> Java > java지도 시간 > Java 데코레이터 디자인 패턴에 대한 예비 연구

Java 데코레이터 디자인 패턴에 대한 예비 연구

高洛峰
풀어 주다: 2017-01-19 16:09:30
원래의
1295명이 탐색했습니다.

이 에세이는 주로 Java에서 간단한 데코레이터 디자인 패턴의 구현을 소개합니다.

먼저 데코레이터 디자인 패턴의 클래스 다이어그램을 살펴보겠습니다.

Java 데코레이터 디자인 패턴에 대한 예비 연구

그림에서 볼 수 있듯이 Component 인터페이스의 어떤 구현 클래스라도 꾸밀 수 있으며, 이러한 구현 클래스에는 데코레이터 자체도 포함되어 있으며, 데코레이터 자체도 다시 꾸밀 수 있습니다.

다음은 Java로 구현된 간단한 데코레이터 디자인 패턴입니다. 커피의 기본 추가로 시작하여 계속해서 우유, 초콜릿, 설탕을 추가할 수 있는 데코레이터 시스템을 제공합니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

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();

  }

}

로그인 후 복사

운영 결과:

Java 데코레이터 디자인 패턴에 대한 예비 연구

위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트를 지원합니다.

Java 데코레이터 디자인 패턴의 예비 탐색과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿