【P000-011】重构交易费计算系统
主界面基本功能都已实现,现在要添加转债页面及相关功能,原有的一些问题也暴露了出来,大约有两个,一个是界面类中控制操作其他类的代码太多,理论上界面类应该只负责操作页面和传递数据给控制类,另一个是各功能类的分类不合理。
磨刀不误砍柴工,先重新理清下软件应有的结构,再按照这个结构来重构代码,该剥离的剥离,该合并的合并
一、com.qiang.tradingfeecount界面操作类包
两个类对应两个界面
一)、CountActivity 主界面:
1、通过交互界面获取路径及其他参数,将这些信息给AccessNI处理,获取AccessNI回传的Myhandler
2、通过交互界面获取用户所输入买卖数据及佣税费参数,并调用ModeSelection分析计算,显示相应结果
二)、ConverActivity 转债页面
1、接收传入的转债价格信息(若有,未实现)
2、计算转债转股所得及盈亏
二、tradingfeecount 控制类包
一个类ModeSelection
一)、ModeSelection:
操作从界面控制类CountActivity/ConverActivity 传入信息,调用CalTools处理或计算并返回
三、com.qiang.dataprocessing 数据处理类包
三个类CalTools、ChooseColor、StockInfAnaly
一)、CalTools:
操作从ModeSelection传入数据(以BigDecimal形式保证精度)
二)、ChooseColor:
通过传入数据给出显示颜色设置
三)、StockInfAnaly:
操作从CountActivity所获取股票信息,分割,组合并返回
四、com.qiang.network网络功能包
三个类
一)、AccessNI:
生成线程,操作从ModeSelection所获取参数(未实现,暂时在界面类直接传入),调用org.apache.http.* 将参数规范格式化并传出,再将网络返回值传给StreamTools,根据返回结果生成相应NIHandler回传给主线程
二)、StreamTools:
获取网络返回值并解析,调用ByteArrayOutputStream将之转为string(最大[1024]位)并返回
三)、NIHandler:
设定信息格式、内容