练习:用户注册后登录玩游戏
回顾java面向对象须知
1)当前需求中有哪些类?
2)知道某些类,这些类中有什么东西?
3)这些类和类之间有什么关系?
分析整个流程
1---用户登录网页,跳转到软件(游戏或知乎等)的登录页面,登录页面我们简单一点描述一下有用户名(useName)、密码(passWord)、提交和取消,当用户注册的用户名和密码符合规则(正则表达式判断),就提交到服务器,如果不符合就给与温馨提示(包括已经注册过的等)。
2---服务器中有一个数据库存取用户的注册信息;当用户提交注册信息后就存取到后台数据库中,简单描述一下数据库,有一张用户表,包含许多字段信息:id(用户的序号)、用户名、密码等。用户表的作用:供用户登录时信息的校验,如果有此信息则登录成功,无此信息就给予提示(用户名不对或者注册失败)。
3---后台服务器存取完数据后,就给当前页面返回一个信息(注册成功),此时跳转到登录界面。如果开始登录,则输入用户名和密码,输入完毕后,将信息发送到服务器端,在服务器端的数据库中进行校验,如果校验成功,给前台(登录页面反馈信息),即登陆成功,跳转到相应的界面;如果不想登录,直接点取消(登录),关闭当前页面
4---进入游戏界面,开始玩猜数字游戏
感悟:关于这个业务逻辑的细节,最好的理解方式就是去自己去注册,把各种突发状况包含进来(暂时不好考虑页面的美工等)
下面进入正题,具体的实现(忽略次要信息)
1)需求中有哪些类?
用户类
成员变量:基本信息描述----useName、passWord等
成员方法:注册,登录
由于在开发中,经常遇到按功能划分,还是按照模块划分(后续会提到),产生了两种策略:
1)先按照功能划分,再按照模块划分
2)先按照模块划分,再按照功能划分
经分析,由于用户先注册再登录,就可以把用户类按照功能划分
即:1用户操作接口:2用户操作接口的实现类
在用户操作接口中定义抽象的方法---注册、登录----这样做的原因是:java也是面向接口的编程(后续会提到面向切面编程)
在用户操作接口的实现类中---实现具体的业务逻辑:注册和登录
测试类:定义一个用户的类UseTest
用户类和测试类的关系:在测试类中创建用户类对象来操作登录和注册功能
在开发中包命名的规则
1)用户的描述类:Use---放到实体类的包中
也即包的命名:域名.公司名.entity;
形如:org.wzj.entity
2)用户操作的接口:
包的命名:域名.公司名.dao----(dao层)
形如:org.wzj.dao
3)用户操作接口的实现类
包的命名:域名.公司名.dao.imp----(接口的实现层)
包的命名:org.wzj.dao.imp----业务逻辑层(接口的子实现类)
形如:org.wzj.dao.imp
4)测试类
包的命名:域名.公司名.test
形如:org.wzj.test
说明:针对业务(注册和登录)进行测试