User Tools

Site Tools


oop:observer_pattern

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
oop:observer_pattern [2026/05/24 06:46] – [Observer Pattern] gthanosoop:observer_pattern [2026/05/25 14:57] (current) gthanos
Line 21: Line 21:
 Παρακάτω δίνεται μία γενική σχηματική υλοποίηση του Observer Pattern σε γλώσσα Java.  Παρακάτω δίνεται μία γενική σχηματική υλοποίηση του Observer Pattern σε γλώσσα Java. 
  
-<code java>+<code java ObserverSchema.java>
 // ========================================== // ==========================================
 // 1. ΤΟ INTERFACE ΤΟΥ ΠΑΡΑΤΗΡΗΤΗ (OBSERVER) // 1. ΤΟ INTERFACE ΤΟΥ ΠΑΡΑΤΗΡΗΤΗ (OBSERVER)
Line 102: Line 102:
  
 ===== Παράδειγμα - Stock Observer ===== ===== Παράδειγμα - Stock Observer =====
 +
 +Παρακάτω δίνουμε ένα παράδειγμα που προσομοιάζει ένα σύστημα παρατήρησης τιμών μετοχών. Έχουμε μία σειρά από παραητήρητές (email observer, mobile app observer), οι οποίοι ενημερώνονται μέσω της κλάσης ''TechMarket'' (υλοποιεί το interface ''Stock Subject''). Παρατηρήστε ότι σε κάθε αλλαγή τιμής ενημερώνονται μόνο οι Observers που έχουν κάνει attach στο TechMarket και ότι το TechMarket δεν γνωρίζει τίποτα για την εσωτερική δομή του κάθε Observer, εκτός από το ότι θα τον ενημερώσει μέσω της μεθόδου ''update''.
  
 <code java ObservableMarket.java> <code java ObservableMarket.java>
Line 151: Line 153:
     @Override     @Override
     public void update(String stockName, double price) {     public void update(String stockName, double price) {
-        System.out.println("[Mobile App] Ειδοποίηση: Η " + stockName + " έφτασε τα " + price + "€");+        System.out.println("[Mobile App] Ειδοποίηση: Η τιμή της " + stockName + " ενημερώνθηκε σε " + price + "€");
     }     }
 } }
Line 158: Line 160:
     @Override     @Override
     public void update(String stockName, double price) {     public void update(String stockName, double price) {
-        System.out.println("[Email] Αποστολή στο χρήστη: Η μετοχή " + stockName + " ενημερώθηκε στα " + price + "€");+        System.out.println("[Email] Ενημέρωση: Η τιμή της " + stockName + " ενημερώθηκε σε " + price + "€");
     }     }
 } }
Line 183: Line 185:
 } }
 </code> </code>
- 
- 
oop/observer_pattern.1779605196.txt.gz · Last modified: 2026/05/24 06:46 by gthanos