summaryrefslogtreecommitdiffstats
path: root/Master/Reference Architectures and Patterns/hjp5/examples/Listing1016.java
blob: 0d806130915379ad7b43e6a129481038c75e7f6b (plain)
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
75
76
77
78
79
/* Listing1016.java */

class Delegate
{
  private Delegator delegator;

  public Delegate(Delegator delegator)
  {
    this.delegator = delegator;
  }

  public void service1()
  {
  }

  public void service2()
  {
  }
}

interface Delegator
{
  public void commonDelegatorServiceA();
  public void commonDelegatorServiceB();
}

class Client1
implements Delegator
{
  private Delegate delegate;

  public Client1()
  {
    delegate = new Delegate(this);
  }

  public void service1()
  {
    //implementiert einen Service und benutzt
    //dazu eigene Methoden und die des
    //Delegate-Objekts
  }

  public void commonDelegatorServiceA()
  {
  }

  public void commonDelegatorServiceB()
  {
  }
}

class Client2
implements Delegator
{
  private Delegate delegate;

  public Client2()
  {
    delegate = new Delegate(this);
  }

  public void commonDelegatorServiceA()
  {
  }

  public void commonDelegatorServiceB()
  {
  }
}

public class Listing1016
{
  public static void main(String[] args)
  {
    Client1 client = new Client1();
    client.service1();
  }
}