标签:
1 注册用户用例
主要场景
1 用户访问注册页面
2 系统生成验证码图片
3 用户输入想要的ID,Emial地址,想要的显示名称,密码,确认密码
4 用户输入验证码
5 用户提交注册请求
6 系统检查验证码
7 系统检查ID是否已经被注册,Email是否已经被注册,密码和确认密码是否一致
8 系统保存未激活的账户信息
9 系统生成激活链接,并发送至用户邮箱
10 用户打开邮箱,访问激活链接
11 系统解析激活链接,激活相关账户
12 用户使用ID和密码登陆
扩展场景
4a:用户无法看清验证码,请求重新生成
1.跳转到步骤2
6a:系统检测到用户输入的验证码错误
1.系统提升验证码错误
2.跳转到步骤2
7a:系统检测到ID已被注册,或者Email已被注册,或者密码和确认密码不一致
1.系统提示相关错误信息
2.跳转到步骤2
2 界面原型
3 简要设计
3.1 接口定义
系统对外的接口包括:
生成验证码图片
处理注册请求
激活账户
处理登陆
generateCaptchaKey()和generateCaptchaImage()方法,对于Captcha的简单解释就是验证码。
每个Captcha都需要有一个key,根据这个key,系统才能得到对应的验证码图片以及实际值。
3.2 板块结构
定义了系统核心的接口之后,基于功能分割和方便复用的原则,再对系统进一步进行划分。
这里基于包名划分模块,这也是在java中比较常见的做法。
账户注册服务的模块划分如图:
现在逐个解释一下各个模块(包)的作用:
com.juvenxu.mvnbook.account.service
系统的核心,它封装了所有下层的细节,对外暴露简单的接口。这实际上是一个facade模式。
com.juvenxu.mvnbook.account.web
该模块包含了所有与web相关的内容,包括可能的JSP,Servlet,web.xml等,它直接依赖于com.juvenxu.mvnbook.account.service模块,使用其提供的服务。
com.juvenxu.mvnbook.account.persist
处理账户信息的持久化,包括增,删,改,查等,根据实现,可以基于数据库或者文件。
com.juvenxu.mvnbook.account.captcha
处理验证码的key生成,图片生成以及验证等,这里需要第三方的类库来帮助实现这些功能
com.juvenxu.mvnbook.account.email
处理邮件服务的配置,激活邮件的编写和发送等工作
小结:
开发流程如下:
账户注册服务的需求
大概的界面
简单的接口设计
模块的职责划分
maven实战第九篇_09_yucong_背景开发案例:注册用户
标签:
原文地址:http://www.cnblogs.com/yucongblog/p/5297424.html