作者: 叶仁平
- 课程设计要求
题目:
建立一个通讯录,要求通讯录中必须含有编号、姓名,性别、电话、地址、Email等等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写主程序测试。 使用文件保存数据(保存的数据可以使用对象流写入文件)。
- 界面原型示例如下:
- 目标:理解面向对象,以及项目架构设计、MVC**
三层架构:即表现层、业务层、持久层。
① 持久层:
采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。
② 业务层:采用事务脚本模式。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成功或同时失败。避免部分成功部分失败引起的数据混乱操作。
③ 表现层:采用MVC模式。
M称为模型,也就是实体类。用于数据的封装和数据的传输。
V为视图,也就是GUI组件,用于数据的展示。
C为控制,也就是事件,用于流程的控制
- swing+对象流+mvc设计模式
- 开发工具:Eclipse mars 2 或IntellJ IDEA 2017
- 一台电脑
1. 通过GUI界面显示
2. 使用对象流将数据存储到文件
3. 添加成员到通讯录
4. 通过编号删除成员
5. 通过姓名删除
6. 通过姓名查询成员
7. 显示所有成员
- 模拟数据库信息如下(==实际不存在==)
member :
字段名 | 类型 | 约束 |
---|---|---|
mId | int | 主键、非空、自增 |
name | vachar(30) | 非空 |
sex | char | check约束 为男或者女 |
phoneCode | char | 无 |
addr | varchar(60) | 无 |
varchar(50) | 无 |
- 对应实体类(Member )信息
属性名 | 属性类型 | 备注 |
---|---|---|
mId | int | 编号 |
name | String | 姓名 |
sex | char | 性别 |
phoneCode | String | 电话 |
addr | String | 地址 |
String |
包名:cn.sxt.*
变量名和方法名:驼峰原则,见名知意
- 命名规范:
- **包名:*cn.yerenping.
- **类名:**首字母大写,见名知意
- **变量名和方法名:**驼峰原则,见名知意
- 注释规范:
- 有方法功能注释
- 方法体核心位置必须有说明注释
1. 成员编号、和姓名不能为空
2、成员编号不能重复
3、成员姓名不能重复
4、删除可以通过编号和姓名删除
当只填写编号的时候,通过编号删除
当只填写姓名的时候,通过姓名删除
当姓名和编号都填写的时候,通过过编号删除
5、修改成员信息:
通过编号修改
当姓名与通讯录中重复的时候,提示(抱歉,该成员不存在或者名字重复)
6、 当添加、修改、删除成功后,表格中数据自动刷新
- 项目包结构如下:
-
架构分析(三层)
-
**持久层:**通过实体对象写入到文件,从文件中读取出实体对象:
- 有关类:MemberDao接口及其实现类、ObjectRWUtil、Member
-
**业务层:**将对数据操作封装成一个一个方法,对其业务逻辑进行处理
- 有关类:MemberService接口及其实现类
-
**表现层:**采用MVC模式展现。
- M: 及Member实体类,对数据库的封装,便于数据的传输
- **V:**就是SWING中的一些GUI组件,用户数据的展示
- **C:**在SWING中的控制器也就是组件的一些监听,触发监听器的即触发功能
-