Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.76 KB | None | 0 0
  1. public class Application {
  2.  
  3.     public static void main(String[] args) {
  4.  
  5.         SimpleObservable observable = new SimpleObservable();
  6.         SimpleObserver observer1 = new SimpleObserver();
  7.         observer1.setName("Observer 1");
  8.         SimpleObserver observer2 = new SimpleObserver();
  9.         observer2.setName("Observer 2");
  10.         observable.addObserver(observer1);
  11.         observable.addObserver(observer2);
  12.  
  13.         observable.notifyObservers();
  14.  
  15.  
  16.         observable.setState("state 1");
  17.         observable.notifyObservers(new ArrayList<>(Arrays.asList("1","3","3","7")));
  18.  
  19.         observable.setState("state 2");
  20.         observable.notifyObservers(new ArrayList<>(Arrays.asList("1","4","8","8")));
  21.     }
  22. }
  23.  
  24.  
  25. public class SimpleObservable extends Observable {
  26.  
  27.     private String state;
  28.  
  29.     public String getState() {
  30.         return state;
  31.     }
  32.  
  33.     public void setState(String state) {
  34.         setChanged();
  35.         this.state = state;
  36.     }
  37.  
  38.  
  39. }
  40. public class SimpleObserver implements Observer {
  41.  
  42.     private String name;
  43.  
  44.     public String getName() {
  45.         return name;
  46.     }
  47.  
  48.     public void setName(String name) {
  49.         this.name = name;
  50.     }
  51.  
  52.     @Override
  53.     public void update(Observable o, Object arg) {
  54.  
  55.         System.out.println("Observer name: " + this.getName());
  56.         System.out.println("Current state:" + ((SimpleObservable)o).getState()); //так наверное лучше не делать
  57.         System.out.println("Current time:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
  58.  
  59.         System.out.println(arg);
  60.     }
  61.  
  62.  
  63.     @Override
  64.     public String toString() {
  65.         return "SimpleObserver{" +
  66.             "name='" + name + '\'' +
  67.             '}';
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement