Add all 23 GoF design pattern implementations (2026-06-13)
This commit is contained in:
22
03-behavioral/observer/AlertObserver.java
Normal file
22
03-behavioral/observer/AlertObserver.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package observer;
|
||||
|
||||
/** Fires an alert when the price changes by more than a threshold % */
|
||||
public class AlertObserver implements StockObserver {
|
||||
private final String name;
|
||||
private final double thresholdPercent;
|
||||
|
||||
public AlertObserver(String name, double thresholdPercent) {
|
||||
this.name = name;
|
||||
this.thresholdPercent = thresholdPercent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPriceChanged(String ticker, double oldPrice, double newPrice) {
|
||||
double change = Math.abs((newPrice - oldPrice) / oldPrice * 100);
|
||||
if (change >= thresholdPercent) {
|
||||
System.out.printf(" [ALERT:%s] %s moved %.1f%% — ALERT TRIGGERED%n", name, ticker, change);
|
||||
} else {
|
||||
System.out.printf(" [Alert:%s] %s moved %.1f%% — within threshold%n", name, ticker, change);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user