Advertisement
Oppenheimer

Observer pattern

Feb 23rd, 2025
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. interface StockObservable{
  4.     public void addObserver(Observer obj);
  5.     public void removeObserver(Observer obj);
  6.     public void notifyObservers();
  7.     public void setData(int newStock);
  8.     public int getData();
  9. }
  10.  
  11.  
  12. class IphoneObservable implements StockObservable{
  13.     List<Observer> observers = new ArrayList<>();
  14.     int currentStock = 0;
  15.     public void addObserver(Observer obj){
  16.         this.observers.add(obj);
  17.     }
  18.     public void removeObserver(Observer obj){
  19.         this.observers.remove(obj);
  20.     }
  21.     public void notifyObservers(){
  22.         for(Observer obj: this.observers){
  23.             obj.update();
  24.         }
  25.     }
  26.     public void setData(int newStock){
  27.         if(this.currentStock != newStock){
  28.             notifyObservers();
  29.             currentStock = newStock;
  30.         }
  31.     }
  32.     public int getData(){
  33.         return currentStock;
  34.     }
  35. }
  36.  
  37. interface Observer{
  38.     public void update();
  39. }
  40.  
  41. class MobileObserver implements Observer{
  42.    
  43.     StockObservable observable;
  44.     String username;
  45.    
  46.     MobileObserver(String username, StockObservable observable){
  47.         this.username = username;
  48.         this.observable = observable;
  49.     }
  50.  
  51.     public void update(){
  52.         System.out.println("mssg sent to" + this.username);
  53.     }
  54. }
  55.  
  56.  
  57. public class Main{
  58.     public static void main(String args[]){
  59.         StockObservable iphones = new IphoneObservable();
  60.        
  61.         Observer observer1 = new MobileObserver("anon", iphones);
  62.         Observer observer2 = new MobileObserver("anon2", iphones);
  63.        
  64.         iphones.addObserver(observer1);
  65.         iphones.addObserver(observer2);
  66.  
  67.         iphones.setData(100);
  68.        
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement