一個MVC的簡單案例

正在作個一個比較蛋疼的項目,發現有些東西不知道怎麼抽象出來,可是有些東西仍是抽象的出來的,並且簡單粗暴,有固定的套路,結合手頭的資料總結一下這些至關有規律的東西。數據庫

範例:質量分析系統

0、MVC到底在說什麼

clipboard.png

一、需求描述

本系統的目的是收集生產過程當中的數據,並對數據進行處理、分析(調用matlab),同時給出系統的穩定性的判斷,並給出智能化的建議。restful

  1. 普通用戶須要有數據讀取/寫入/分析的權限。
  2. 管理員須要有管理普通用戶和日誌的權限,也要有要有數據讀取/寫入/分析的權限。

二、用例分析

clipboard.png

三、功能設計

並不完善也不是原來所須要的功能,這裏所給出的功能只不過是是爲了設計而設計。
在這個階段能夠順便設計URL樣式(restful等)。數據庫設計

clipboard.png

四、數據庫設計

一個並不完整的數據庫設計:ide

clipboard.png

五、程序結構設計

com.kms.config
com.kms.model
com.kms.action
com.kms.common
com.kms.dao
com.kms.service

六、數據模型設計

普通用戶數據模型:ui

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;
//一、省略getter、setter方法
//二、發散性地說,這裏的List更適合作爲「在userbean中存儲購物車」這種狀況。

七、數據訪問接口/業務邏輯接口

這段的目的就是嚴格按照MVC視圖中的「數據訪問接口」來進行編碼,例如:spa

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

八、實現接口

九、界面設計

相關文章
相關標籤/搜索