Lab3-Day1
进度:
目前的进度是完成了任务1、2、3,也就是vote包里的三个class和对应的测试用例,这次就比前两次熟练多了。
直入主题:
其实这三个任务还是很简单的,但是也难免遇到一些小问题——
- 构造器的参数怎么选择,在没有用正则表达式之前,我的选择局限于map和list两种方法,但是对于客户端都是不太友好的,因为输入确实很麻烦,看看后续能不能有所改进吧
- RI的描述,一个类的RI想要保持,似乎不仅仅依赖于内部的checkRep检查。就拿VoteItem这个类来说,一个item的投票选项必须是在VoteType里头提供了的,不然这个item显然是违背了它的RI的,但是在class VoteItem里面,由于这时还没有确定VoteType是什么,也就自然无法用checkRep来检查,个人感觉需要在后续综合使用的时候进行这个检查会好一点,就是不知道会不会影响程序的一些性质?
- 还有equals的重写。这个还是挺麻烦的,需要判断的细节比较多。一是Object obj是否为空引用,二是obj是否为当前类的一个实例,然后强转,再者就是强转之后,比较属性的问题,在写的时候我选择了直接比较this和obj的属性。但是用observer的结果来比较会不会更规范一点?