正在做个一个比较蛋疼的项目,发现有些东西不知道怎么抽象出来,但是有些东西还是抽象的出来的,而且简单粗暴,有固定的套路,结合手头的资料总结一下这些相当有规律的东西。

范例:质量分析系统

0、MVC到底在说什么

clipboard.png

1、需求描述

本系统的目的是收集生产过程中的数据,并对数据进行处理、分析(调用matlab),同时给出系统的稳定性的判断,并给出智能化的建议。

  1. 普通用户需要有数据读取/写入/分析的权限。
  2. 管理员需要有管理普通用户和日志的权限,也要有要有数据读取/写入/分析的权限。

2、用例分析

clipboard.png

3、功能设计

并不完善也不是原来所需要的功能,这里所给出的功能只不过是是为了设计而设计。
在这个阶段可以顺便设计URL样式(restful等)。

clipboard.png

4、数据库设计

一个并不完整的数据库设计:

clipboard.png

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();
}

8、实现接口

9、界面设计


大舒
7k 声望815 粉丝

define TRUE FALSE