Mercurial > docs > DesignPatterns
annotate code/observer-example.java @ 34:b2cefbd90180
some redesign; new content for summary and appendix
author | meillo@marmaro.de |
---|---|
date | Sat, 11 Aug 2007 12:49:00 +0200 |
parents | 97b57d24fd7b |
children |
rev | line source |
---|---|
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
1 import java.util.Observable; |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
2 import java.util.Observer; |
33 | 3 |
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
4 public class MessageBoard extends Observable { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
5 private String message; |
33 | 6 |
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
7 public String getMessage() { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
8 return message; |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
9 } |
33 | 10 |
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
11 public void changeMessage(String message) { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
12 this.message = message; |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
13 setChanged(); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
14 notifyObservers(message); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
15 } |
33 | 16 |
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
17 public static void main(String[] args) { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
18 MessageBoard board = new MessageBoard(); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
19 Student bob = new Student(); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
20 Student joe = new Student(); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
21 board.addObserver(bob); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
22 board.addObserver(joe); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
23 board.changeMessage("More Homework!"); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
24 } |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
25 } |
33 | 26 |
34
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
27 class Student implements Observer { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
28 public void update(Observable o, Object arg) { |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
29 System.out.println("Message board changed: " + arg); |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
30 } |
b2cefbd90180
some redesign; new content for summary and appendix
meillo@marmaro.de
parents:
33
diff
changeset
|
31 } |