在efframework中,view部分的實現其實就是一個delphi的form。分析信息管理的基礎功能,界面可以分爲2類型:
- 信息列表界面TInfoManagementView:
- 提供一個信息列表(可以用一個表格呈現),
- 提供用戶對信息進行操作的各種可視化功能組件(如菜單、按鈕等)),基本功能有新增,修改,刪除,查看。通過這些可視組件,用戶發起操作請求,相應的controller監聽到請求後,可能呈現信息編輯界面View給用戶進行信息編輯/查閱,或者調用關聯的model執行用戶請求(如刪除當前信息行)。
- 我在框架裏提供了Modal方式,界面融合方式這兩種方式來顯示信息列表View;沒有實現MDI顯示方式。
- 信息編輯界面TInfoEditView:
- 提供用戶需要輸入或查看的信息欄位,在編輯模式下接受用戶輸入
- 用戶執行保存時(例如點擊按鈕或菜單項“保存”)將用戶輸入數據更新到model實例,然後調用model的save方法,執行校驗、更新數據庫及其他相關的事務處理。
- 用戶放棄本次操作時,退出信息編輯View,回到信息列表界面。
- 我在框架裏僅實現了Modal方式。
我的設想是View僅聚焦在用戶交互的欄位及功能項的呈現上。任何關於業務的邏輯都不需要包含進來。在設計時,先實現model跟View部分;最後設計實現Controller,由其完成對view的控制及與model的交互。
思考:
傳統的開發模式,有的可能分離出來了model部分,但是controller與view是作爲一個整體存在;在delphi的VCL機制下,這種實現其實是很高效的;Form的可視化界面設計其實已經融合了controller與view部分。分離出controller就不是那麼必要;也減少了設計的複雜性。
反過來思考:少了controller的存在,就增加了model與view的代碼耦合度。