正在做个一个比较蛋疼的项目,发现有些东西不知道怎么抽象出来,但是有些东西还是抽象的出来的,而且简单粗暴,有固定的套路,结合手头的资料总结一下这些相当有规律的东西。
范例:质量分析系统
0、MVC到底在说什么
1、需求描述
本系统的目的是收集生产过程中的数据,并对数据进行处理、分析(调用matlab),同时给出系统的稳定性的判断,并给出智能化的建议。
- 普通用户需要有数据读取/写入/分析的权限。
- 管理员需要有管理普通用户和日志的权限,也要有要有数据读取/写入/分析的权限。
2、用例分析
3、功能设计
并不完善也不是原来所需要的功能,这里所给出的功能只不过是是为了设计而设计。
在这个阶段可以顺便设计URL样式(restful等)。
4、数据库设计
一个并不完整的数据库设计:
5、程序结构设计
com.kms.config
com.kms.model
com.kms.action
com.kms.common
com.kms.dao
com.kms.service
6、数据模型设计
普通用户数据模型:
public class User {
private String username;
private String password;
private String email;
private String truename;
private String identify;
private int uid;
private String phone;
private String address;
private String exist;
private String status;
private String group;
//省略getter、setter方法
管理员数据模型:
public class Admin {
private String username;
private String password;
private String email;
private String truename;
private String identify;
private int uid;
private String phone;
private String address;
private String exist;
private String status;
private String group;
private List<KmsLog> LogList;
//1、省略getter、setter方法
//2、发散性地说,这里的List更适合做为“在userbean中存储购物车”这种情况。
7、数据访问接口/业务逻辑接口
这段的目的就是严格
按照MVC视图中的“数据访问接口
”来进行编码,例如:
public interface BaseDao<T,ID extends Serializable>{
void insert(T obj);//添加
void update(T obj);//修改
void delete(ID id);//跟随主键
List<T> findAll();//查询
List<T> findPage(int pageSize,int pageNo);//分页
int findCount();//计算总数
}
public interface IsAdmin(){
boolean AdminAuth(String name,String password);//判断是否是管理员的interface
}
<pre><code><br /></code></pre>
public interface LogService{//用于日志获取、增删改查
void addLog(KmsLog kmslog);
void deleteLog(KmsLog kmslog);
List<KmsLog> findLogsByPage(Integer pageSize,Integer pageNo);
Integer getLogCount();
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。