Mercurial > docs > DesignPatterns
comparison 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 |
comparison
equal
deleted
inserted
replaced
33:97b57d24fd7b | 34:b2cefbd90180 |
---|---|
1 import java.util.Observable; | 1 import java.util.Observable; |
2 import java.util.Observer; | 2 import java.util.Observer; |
3 | 3 |
4 public class MessageBoard extends Observable { | 4 public class MessageBoard extends Observable { |
5 private String message; | 5 private String message; |
6 | 6 |
7 public String getMessage() { | 7 public String getMessage() { |
8 return message; | 8 return message; |
9 } | 9 } |
10 | 10 |
11 public void changeMessage(String message) { | 11 public void changeMessage(String message) { |
12 this.message = message; | 12 this.message = message; |
13 setChanged(); | 13 setChanged(); |
14 notifyObservers(message); | 14 notifyObservers(message); |
15 } | 15 } |
16 | 16 |
17 public static void main(String[] args) { | 17 public static void main(String[] args) { |
18 MessageBoard board = new MessageBoard(); | 18 MessageBoard board = new MessageBoard(); |
19 Student bob = new Student(); | 19 Student bob = new Student(); |
20 Student joe = new Student(); | 20 Student joe = new Student(); |
21 board.addObserver(bob); | 21 board.addObserver(bob); |
22 board.addObserver(joe); | 22 board.addObserver(joe); |
23 board.changeMessage("More Homework!"); | 23 board.changeMessage("More Homework!"); |
24 } | 24 } |
25 } | 25 } |
26 | 26 |
27 class Student implements Observer { | 27 class Student implements Observer { |
28 public void update(Observable o, Object arg) { | 28 public void update(Observable o, Object arg) { |
29 System.out.println("Message board changed: " + arg); | 29 System.out.println("Message board changed: " + arg); |
30 } | 30 } |
31 } | 31 } |