正在进行安全检测...

发布时间:2023-11-21 13:39:48


股票分析系统实验报告——Observer模式的应用
一、设计问题
股票的价格随着时间会在一定范围内波动,对于每个股票,股票分析软件提供多种指标分析,如分时图,K线图等,以辅助投资者进行投资决策。分时图是将每分钟的股票价格连起来的折线图;K线图反应每天股票的开盘价、收盘价、最低价和最高价(收盘价高于开盘价用红线绘制,反之用绿线绘制,若收盘价等于开盘价用白线绘制):根据情况,也可能需要增加其他类型的指标分析报告。请选用适当的设计模式,编写一个股票行情分析软件,随着时间的推移和股票价格的变动,实现各种指标的动态更新(要求至少实现一个股票的分时图和K线图)。按实验一的要求提交实验报告。
提示:股价变动用随机数模拟:java.util.Random,用一个线程模拟股票行情数据的产生。第一个数字随机产生,第二个数据为前一个数据的10%波动。
二、问题分析与模式选用
初步分析:

1.观察者模式的运用:
由于题目要求随着时间的推移和股票价格的变动,实现各种指标的动态更新。而观察者模式定义对象间的一种一对多的依赖关系,当一方的对象改变状态时,所有的依赖者都

会得到通知并被自动更新,调用nothifyObserver(方法。
2.灵活运用:
根据情况,也可能需要增加其他类型的指标分析报告。则可以增加一个新的观察者来实现接口Observer,对update(方法体进行改写即可。如果股票数据也发生变化,可以增加一个新的主题来实现接口Subjectupdate方法参数定义成Subject类,同时在主题类中增加得到相应属性的方法,如果增加更新的属性,可以调用get方法及set方法进行调用。
观察者模式的UML类图:
<>Subject+addObserver(:void+deleteObserver(:void+notifyObservers(:void<>Observer+update(:void
ConcreteSubject+addObserver(:void+deleteObject(:void+notifyObservers(:void+otherMetond(:voidConcreteObserver-subjetc:Subject+update(:void
三、设计方案
1.接口:
主题Subject接口,声明抽象方法增加、删除以及通知观察者的方法。Observer

正在进行安全检测...

相关推荐