更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
在金融投资领域,实时掌握股票价格变动对投资者至关重要。请完善以下代码,实现一个基于观察者模式的股票价格监控系统。该系统能够在某只股票价格发生变化时,自动通过邮件和短信通知投资者。系统要求:一当股票价格更新时,所有注册的观察者将立即收到通知二系统支持多种通知方式(邮件、短信)三新增通知方式时无需修改现有代码Import java.util.ArrayList;Import java.util.List;// 股票主题接口Abstract class StockSubject {protected List<StockObserver> observers= new ArrayList<StockObserver>();public void registerObserver(StockObserver o){ ____1_______ ; }public void removeObserver(StockObserver o){ observers.remove(o); }public abstract void notifyObservers();}// 观察者接口Interface StockObserver {void update(double price);}// 具体股票主题实现Class Stock extends StockSubject {private String stockSymbol; private double price;public Stock(String symbol) { this.stockSymbol = symbol; }@Overridepublic void notifyObservers() {for (StockObserver observer : observers) {____2______;}}public void setPrice(double price) {if (this.price != price) {this.price = price;notifyObservers(); }}public String getSymbol() { return stockSymbol; }}// 具体观察者:短信通知服务Class SMSNotification ____3_______{private String recipient;public SMSNotification(String recipient) { this.recipient = recipient; }@Overridepublic void update(double price) {System.out.println("发送短信到 " + recipient + ": " +"股票价格更新为 $" + String.format("%.2f", price));}}// 具体观察者:邮件通知服务Class EmailNotification implements StockObserver {private String email;public EmailNotification(String email) { this.email = email; }@Override____4_______ {System.out.println("发送邮件到 " + email + ": " +"股票价格更新为 $" + String.format("%.2f", price));}}Public class Client {public static void main(String[] args) {// 创建股票主题Stock appleStock = new Stock("AAPL");// 创建观察者StockObserver smsAlert = new SMSNotification("+1234567890");StockObserver emailAlert = new EmailNotification("investor@example.com");// 注册观察者appleStock.registerObserver(smsAlert);___5_______;// 更新股票价格,触发通知appleStock.setPrice(175.95);}}