《第八部分聊天程序设计.ppt》由会员分享,可在线阅读,更多相关《第八部分聊天程序设计.ppt(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、从一个聊天程序的设从一个聊天程序的设计开始计开始1 1一个什么样的程序一个什么样的程序需求需求n n支持用户注册功能支持用户注册功能n n支持用户登录校验支持用户登录校验n n支持好友管理支持好友管理n n支持点对点聊天支持点对点聊天n n支持离线消息支持离线消息n n实现管理员对用户的基本管理功能实现管理员对用户的基本管理功能2 2如何入手?n n方法一:先设计数据,包括持久化数据(数据将被存储于外存中)和非持久化数据(数据仅在内存和网络中存在)。n n方法二:从宏观上架构程序,即定义系统应包含的程序,以及这些程序应包含的功能以及程序之间的关系3 3如何架构?服务器服务器客户端客户端1 1客
2、户端客户端n nDB用户管理程序用户管理程序4 4持久化数据设计n n用户数据用户数据n n好友数据好友数据n n离线消息离线消息5 5持久化数据设计n n用户数据用户数据n n好友数据好友数据n n离线消息离线消息6 6持久化数据设计n n用户数据用户数据n n好友数据好友数据n n离线消息离线消息7 7实现用户管理功能n n采用MVC架构界界面面业业务务逻逻辑辑层层DAO层层ModelDB8 8用户管理具体实现n nModel:TbUser 表达数据n nDAO:TbUserDAO 数据和sql转换n nControl:UserManager 一般不写sqln nView:UserMana
3、gerUI 数据输入输出9 9“异常”体系的架构n n三类自定义异常SystemExceptionSystemException:一般用于表达系统部署:一般用于表达系统部署没有成功的一些问题,如驱动程序加载失败没有成功的一些问题,如驱动程序加载失败DBOperatorExceptionDBOperatorException:用于表达数据库操:用于表达数据库操作异常,如作异常,如SQLSQL语句错误等语句错误等BusinessExceptionBusinessException:用于表达业务异常,如:用于表达业务异常,如密码错误、用户不能删除等;密码错误、用户不能删除等;1010“异常”的处理层
4、次n nDAO层所有方法仅抛出SystemException、DBOperatorExceptionn nControl层所有方法可抛出SystemException、DBOperatorException和BusinessExceptionn nView层将“异常”通过某种方式展示给用户1111一般开发步骤n n设计Modeln n架构空DAO类n n架构空Control类n n绘制View,设计事件监听器n n从view出发逐个实现系统功能编写编写viewview代码代码建立并编写建立并编写controlcontrol方法方法建立并编写建立并编写daodao方法方法1212管理员登录模块的
5、实现n n如何架构MVC?n n何时调用登录模块?如何调用?1313我们还需要什么?n n如何实现注册功能?如何实现注册功能?客户发送一个用户信息(客户发送一个用户信息(ModelModel)到服务器)到服务器 服务器通过服务器通过ControlControl进行用户注册进行用户注册 返回结果给服务器返回结果给服务器n n在在MVCMVC架构下如何实现?架构下如何实现?ViewView在客户端在客户端 ControlControl在服务器端在服务器端 ModelModel两边都有两边都有 实现客户和服务器的通信即可实现客户和服务器的通信即可1414我们还需要什么n n从MVC的角度如何实现注册
6、功能?如何实现注册功能?如何实现登录?如何实现登录?如何实现好友管理?如何实现好友管理?如何实现点对点通信?如何实现点对点通信?如何实现离线消息?如何实现离线消息?1515类MVC架构界界面面客户客户业务业务逻辑逻辑层层DAO层层ModelDB网网络络通通信信层层服务服务器器业业务逻务逻辑层辑层1616该架构下如何实现注册功能?n nModel:TbUser(公用)n nview:TbUserEditor(客户端)n nControl:NetworkCommand(客户端)UserManager(服务器端)n nDAO:TbUserDAO(服务器端)n n如何架构服务器接收客户消息并反馈的类?在该架构下可认为是服务器端的View,因为其负责输入输出功能1717该架构下如何实现登录验证?n n同上1818该架构下如何实现好友管理?n n同上1919该架构下如何实现离线消息?n n同上2020该架构下如何实现点对点通信?n n不涉及数据库,无DAOn n涉及两个View(发送端和接收端),如何设计?n n分解为两个过程发送端编辑消息,并将消息通过发送端编辑消息,并将消息通过NetworkCommandNetworkCommand发送到接收端,接收端缓发送到接收端,接收端缓存消息存消息接收端定时从缓存中提取消息,并将消息显示接收端定时从缓存中提取消息,并将消息显示2121