Guest User

Untitled

a guest
Jun 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.59 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. interface Obserwator {
  4.     public void powiadom(int staraWartosc, int nowaWartosc);
  5. }
  6.  
  7. interface Obserwowany {
  8.     public void dodajObserwatora(Obserwator o);
  9.     public void usunObserwatora(Obserwator o);
  10.     public void powiadomObserwatorow(int nowaWartosc);
  11. }
  12.  
  13. class A implements Obserwator {
  14.     public void powiadom(int staraWartosc, int nowaWartosc) {
  15.         System.out.println("Obiekt klasy A, suma wynosi " + (staraWartosc + nowaWartosc));
  16.     }
  17. }
  18.  
  19. class B implements Obserwator {
  20.     public void powiadom(int staraWartosc, int nowaWartosc) {
  21.         System.out.println("Obiekt klasy B, nowa wartosc wynosi " + nowaWartosc);
  22.     }
  23. }
  24.  
  25. class K implements Obserwowany {
  26.     private int x;
  27.     private ArrayList<Obserwator> obserwatorzy = new ArrayList<Obserwator>();
  28.    
  29.     public K(int wartoscPoczatkowa) {
  30.         x = wartoscPoczatkowa;
  31.     }
  32.    
  33.     public void dodajObserwatora(Obserwator obiekt) {
  34.         obserwatorzy.add(obiekt);
  35.     }
  36.    
  37.     public void usunObserwatora(Obserwator obiekt) {
  38.         obserwatorzy.remove(obiekt);
  39.     }
  40.    
  41.     public void powiadomObserwatorow(int nowaWartosc) {
  42.         for (Obserwator obiekt : obserwatorzy) {
  43.             obiekt.powiadom(x, nowaWartosc);
  44.         }
  45.     }
  46.    
  47.     public void setX(int wartosc) {
  48.         powiadomObserwatorow(wartosc);
  49.         x = wartosc;
  50.     }
  51. }
  52.  
  53. public class Test {
  54.     public static void main(String[] args) {
  55.         K obiektK = new K(10);
  56.         A obiektA = new A();
  57.         B obiektB = new B();
  58.         // dodajemy obserwatorow do listy
  59.         obiektK.dodajObserwatora(obiektA);
  60.         obiektK.dodajObserwatora(obiektB);
  61.         // zmieniamy wartosc w K za pomoca metody setX(..)
  62.         obiektK.setX(12);
  63.         obiektK.setX(5);
  64.     }
  65.  
  66. }
Add Comment
Please, Sign In to add comment