实战门禁系统经历

来源:互联网 发布:淘宝品牌授权书真假 编辑:程序博客网 时间:2024/04/29 08:18

 

实战门禁系统经历
 
做门禁系统项目要用到Java面向对象,对此我无以应从。
915号开始做该项目,那时一点头绪都没有。当然对继承、封装、接口还不甚理解,做项目的时候有点放弃的感觉。本来是想按着自己的想法去实现门禁系统的,但想了想还是不能实现,只好按照课本的步骤做。
先做出个大概,建立了四个包—系统包sys、用户包user、验证包validate、测试包test,在sys中建立了计算机类Computer、门禁系统类Janitor、电子门类Door、输入设备类InputEquip;user中建立了管理员类Administrators、访客类Caller、雇员类Employee;在validate类中建立了验证接口Validate、实现接口类GenericValidate、密码验证类PWValidate、指纹验证类DactylogramValidate、胸卡验证类BlockValidate;在test中建立了雇员测试类EmployeeTest、访客测试类GuestTest。然后把课本所有写出来的属性、方法都原封不动的敲了上去,敲完后,思路卡住了。无论怎么想就是想不出怎么去实现它们,全部思路都断掉了。
中间老师给我们讲解了代码实现,朦胧中有些领悟,在老师那里有偷了些代码敲了上去。看看代码,问问自己为什么这样做,不知道!抄完后,接下来怎么做,不知道!最后停在了那里,项目没完成。
今晚923号该好好看看老师的代码了……理解后再按着自己的想法去做,相信自己能做到。
现在对门禁系统如何实现有些了解。一个完整的门禁系统需要有计算机、电子门、输入设备、用户,所以我们这个程序就要有4个包:系统包sys、用户包user、验证包validate、测试包test
sys中存放的类有:ComputerDoorControlSysInputEquip
user中存放的类有:AdminGuestEmployee
validate中存放的类有:ValidateGenericValidatePassValidateFingerValidate
CardValidate
test中存放的类要看你想测试那些功能了,一般要测试的:管理员测试、雇员测试、访
客测试、输入设备输入
Computer类:负责存放密码、胸卡、指纹;验证方法,验证属于哪种类型,是密码、
胸卡还是指纹;有存放,必有增加,所以写三个方法实现密码、胸卡、指纹的增加功能。
       Door类:有开门和关门两个功能
       InputEquip类:实现输入功能,获取输入值
       ControlSys类:属性有——computerdoorinputEquipring(门铃)、openSign(开门信息)、logger(日志),通过构造方法实现初始化这些属性;门禁系统的工作方法work()实现输入设备的输入值的验证,调用计算机的验证方法实现验证,通过则开门,否则不开门;判断管理员有没有命令开门(openSign是否为1);还有就是模拟开门操作(使程序暂停的方法是java.lang.Thread.sleep(5000);          //暂停5s
       Guest类:属性name肯定是有的;preesRing(ControlSys cs)该方法实现了访客请求开门。
       Employee类:属性name肯定是有的;input(ControlSys cs)实现输入信息功能。继承Guest
       Admin类:属性name肯定是有的;通过work(ControlSys cs,Guest guest)实现是否为访客开门;通过work(ControlSys cs,String valType,String valStr)实现录入新的验证信息。继承Employee
       Validate接口:验证方法check()
       实现接口类GenericValidateObject属性——inner数组(作为中间桥梁)、input(作为中间桥梁);实现验证方法check()
       PassValidate类:实现密码具体的验证工作
       CardValidate类:实现胸卡具体的验证工作
       FingerValidate类:实现指纹具体的验证工作
       以上就是门禁系统具体的实现。通过上面的解析可以看出每个类都是各职其能,也就是说自己该干什么就干什么,不做多余的事、不做别人要做的事。
原创粉丝点击