公司加班的报销流程是很繁琐的,我打算做个swing程序实现自动化
原操作规范如下:
1.部门很多人的加班信息都在一个excel表里,共计5列
2.将符合规则的信息黏出来,放到另一张表里,共计12列,源数据还要做一些格式上的转换,并填写其他列
刚看完<<headfirst设计模式>>,觉得可以再这个程序上实践一下,画完了加班规则流程图后,我给自己画了一张大饼
1.界面要是可配置的
rule.key = data,startTime,endTime,name,project,isTaxi,meal,car,sum,total,info
data.columnName = 日期
data.order = 2
data.mapValue = 1
data.ruleName = DateRule
data.originFormat = yyyy/MM/dd
data.nowFormat = yyyy年MM月dd日E
rule.key 配置将要生成的表格的列
columnName 列名
order 源数据位置
mapValue 映射到生成表格的列的位置
2.抽象编程
将每个生成表格的列看做一个规则,写一个抽象类,子类继承该类,利用多态的特性,实现自动化处理
ruleName 这个是要实例化的类名
originFormat 源数据格式
nowFormat 被转换后的格式
3.mvc
界面与模型完全独立,通过控制器中转数据,界面与控制器通过观察者模式互相通信
然后呢,在实践的过程中,觉的既然要读取配置文件,界面也要给点提示才行,要把多线程也用上,要减少代码的复用,要做到功能分块,变量名取的有意义...
shift!真想穿梭时光回去给自己两脚,显你会的多是不,屁大点程序你还要上天,有意思吗?至于吗?多长时间了还没做出来!下一个月的报销都来了。
于是乎痛定思痛,什么oo设计原则都抛置脑后,在一个ActionListener里完成的全部的功能,不到两百行代码,不过10几分钟。
我仿佛回到那个嗅觉敏锐的自己,看到问题回去改动几处代码,反复调试了几次,我感到酣畅淋漓,将这个月的加班数据方到程序中,几秒钟完成了加班统计
倘若成为规则的奴隶,自己会慢慢变得麻木,变得不再相信自己,编程也将没有乐趣。