MDD:使用模型驅動開發方式進行快速開發(多圖預警)


相信很多人跟我一樣,不喜歡數據展示、列表分頁、數據的增、刪、改、查,這種簡單又煩瑣的搬磚活。

所以網上出現很多開源的代碼生成工具,在多年前我也寫過,根據模版生成簡單的View、Action、Service、Dao、Bean;但實際上並沒有太大變化,代碼生成太死板。不是所有表單數據都可以用input[type='text']來輸入的,增刪一個字段是要改4人的。

多年以后我嘗試用模型驅動開發,基於配置來實現各種各樣的功能,控件豐富且一鍵調用;廢話不多說,下面詳細介紹

假設需要進行圖書管理、圖書分類、圖書借閱記錄;最終要的效果如下圖:

數據展示與排版,是不是讓人覺得很直觀。不同的數據操作,功能鍵在數據上邊。再來看下表單:

這里邊有五種控件:單行文本框、多行文本框、日期控件、文件上傳控件,還有一個隱藏控件指向圖書類型ID(由於列表左邊已選擇“語文”類型,在添加圖書信息時會自動識別)

在這里您不用寫一行代碼,系統也不會生成一行代碼。您信嗎?但不管您信不信,事實就是如此。

 

在這里有三表數據庫表:圖書分類、圖書信息、借閱記錄。(實際上要再加一個分類與圖書的多對多表會更友好些,這里為了盡量縮小篇幅省略)

1、圖書分類

2、圖書信息

3、借閱記錄

 

這三個表的關聯關系是借閱記錄->圖書信息->圖書分類;其中圖書分類是樹型結構數據。

進入LINGX模型驅動開發平台的在線開發工具

 

 

點擊“創建”-"創建表對象",出現下圖:

選擇之前創建的數據庫表“圖書信息”[toa_book]

平台會自動讀取“圖書信息”[toa_book]表的所有字段,連注釋也會一起取出;在這里注釋至關重要的,在生成對象模型時注釋會變成字段名;同時也讓人養成一種建表要注釋的習慣。

給模型取名字,點擊“確定”后生成對象模型。如下圖:

將需要模型功能寫入功能樹

這里面的功能,前三是自動生成的方法模型;之后是平台默認實現的方法模型,點擊“預覽”

在這里已經可以對圖書信息增刪改查,外加分頁、查詢、高級查詢、導出功能。這僅僅是平台最基礎的功能。由於默認情況下每個字段的輸入控件都是input[type='text']。所以要設置字段所需的控件

這里對“出版日期”進行了“日期控件”設置

這是各個字段設置好輸入控件后預覽,數據列表及添加表單功能。

這個圖書信息對象模型就建立好了,可以掛在菜單下,就可以對其進行圖書信息的管理;但我們要的還遠遠不止是這個,還要圖書分類、借閱記錄。

用以上的方法建立圖書分類與借閱記錄兩個模型,因為圖書分類是樹型結構。所以表字段必須要包含fid字段。fid字段要指向自身模型

注意其中的兩個屬性:輸入控件(dialogtree樹型對話單選框)與指向對象模型(自身表名即模型代碼),在這里補充圖書信息的"隸屬分類"字段【指向對象模型】為圖書類別,借閱記錄的"隸屬圖書"字段【指向對象模型】為圖書信息,這樣三者之間就建立了外鍵關聯關系。

然后在對象里分別指定“級聯對象”屬性,如下圖:

其中圖書類型的級聯對象為JSON對象,具體是:[{name:'圖書信息',entity:'toa_book',method:'grid_cascade',rule:''}]

而圖書信息中的級聯對象為借閱記錄的對象代碼:toa_book_record。

到這里已經完成了三個對象模型的配置工作,現在只差把功能掛在菜單之下,進入“系統管理”-“菜單管理”,如下圖:

到這里已經全部完成。在這里可能並沒有完全展示所有的操作細節,有些人會看不明白。這些都沒關系有視頻介紹一步都沒落下:http://pan.baidu.com/s/1cG89FC

這就是模型驅動開發的魅力,但我覺得我這平台已經超越了模型驅動開發MDD達到領域驅動開發DDD,因為在業務模型(執行器)中可以調用系統的所有資源及任意業務嵌套;

不知道有沒有說清楚,歡迎各位同學拍磚交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM