Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- interface Obserwator {
- public void powiadom(int staraWartosc, int nowaWartosc);
- }
- interface Obserwowany {
- public void dodajObserwatora(Obserwator o);
- public void usunObserwatora(Obserwator o);
- public void powiadomObserwatorow(int nowaWartosc);
- }
- class A implements Obserwator {
- public void powiadom(int staraWartosc, int nowaWartosc) {
- System.out.println("Obiekt klasy A, suma wynosi " + (staraWartosc + nowaWartosc));
- }
- }
- class B implements Obserwator {
- public void powiadom(int staraWartosc, int nowaWartosc) {
- System.out.println("Obiekt klasy B, nowa wartosc wynosi " + nowaWartosc);
- }
- }
- class K implements Obserwowany {
- private int x;
- private ArrayList<Obserwator> obserwatorzy = new ArrayList<Obserwator>();
- public K(int wartoscPoczatkowa) {
- x = wartoscPoczatkowa;
- }
- public void dodajObserwatora(Obserwator obiekt) {
- obserwatorzy.add(obiekt);
- }
- public void usunObserwatora(Obserwator obiekt) {
- obserwatorzy.remove(obiekt);
- }
- public void powiadomObserwatorow(int nowaWartosc) {
- for (Obserwator obiekt : obserwatorzy) {
- obiekt.powiadom(x, nowaWartosc);
- }
- }
- public void setX(int wartosc) {
- powiadomObserwatorow(wartosc);
- x = wartosc;
- }
- }
- public class Test {
- public static void main(String[] args) {
- K obiektK = new K(10);
- A obiektA = new A();
- B obiektB = new B();
- // dodajemy obserwatorow do listy
- obiektK.dodajObserwatora(obiektA);
- obiektK.dodajObserwatora(obiektB);
- // zmieniamy wartosc w K za pomoca metody setX(..)
- obiektK.setX(12);
- obiektK.setX(5);
- }
- }
Add Comment
Please, Sign In to add comment