Паттерн: Наблюдатель (Observer)
Исходник: Eye.java, язык: java [code #516, hits: 7481]
автор: this [добавлен: 06.10.2007]
  1. package observer;
  2.  
  3. import java.util.Observable;
  4. import java.util.Observer;
  5.  
  6. public class Eye implements Observer {
  7. Users watching;
  8.  
  9. public Eye(Users users) {
  10. this.watching = users;
  11. watching.addObserver(this);
  12. }
  13.  
  14. public void update(Observable users, Object userName) {
  15. if (users != watching) {
  16. }
  17.  
  18. String name = (String) userName;
  19. if (watching.loggedIn(name)) {
  20. addUser(name);
  21. } else {
  22. removeUser(name);
  23. }
  24.  
  25. }
  26.  
  27. public void removeUser(String name) {
  28. /* ...
  29. * Удаляем пользователя из списка
  30. * присутсвующих
  31. * ....
  32. */
  33.  
  34. }
  35.  
  36. public void addUser(String name) {
  37. /* ...
  38. * Регистрируем пользователя в списке
  39. * присутсвующих
  40. * ...
  41. */
  42. }
  43.  
  44. }
  45.  
Сущность ConcreteObserver

"Наблюдает" за объектом Users: ловит оповещения при логине.
Тестировалось на: java 1.5.0_04

+добавить реализацию