全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1665
推到 Plurk!
推到 Facebook!

可用Delphi實做MVC範例嗎?

答題得分者是:sryang
rachex2000
一般會員


發表:21
回覆:32
積分:20
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-12 17:12:15 IP:203.66.xxx.xxx 訂閱
最近在看design pattern方面的書,但是很多地方看得一頭霧水,不能體會,例如MVC架構用Delphi到底要如何實做?似乎沒
有書講得清楚,書上總是強調要將UI與商業邏輯分開,但是怎麼樣才能分開也沒說請楚?我總是無法完全分開,甚至懷疑起分開的定義是什麼,
想請各位先進,若有人有Delphi寫成的MVC範例,可否提供,或是指引我到何處尋找?

另外,由於我大多寫的是資料庫方面的程式,因此常考慮要如何寫最符合OO的精神,但是光考慮Query1, Datasource1是要放在哪裡(Form或DataModule)都想了很久,雖然書上大多說要放到DataModule裡,但這樣真的比較好嗎?有時會懷疑,是否Delphi的設計上有違背MVC的精神的?平常用的資料庫是關聯式的,是否就使程式很難做到符合OO的精神?這些問題,希望大家說說個人的看法.
編輯記錄
rachex2000 重新編輯於 2007-09-12 17:17:20, 註解 無‧
Coffee 重新編輯於 2007-10-12 10:32:25, 註解 修改分類為問題‧
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-16 01:32:30 IP:124.10.xxx.xxx 訂閱
要一口氣跳到 MVC 這一步太大了,我的建議是先走一小步,感受一下物件的好處
試想,假如把 TQuery 跟 TDatasource 放到 Form 上,裡面寫著新增/修改/刪除/查詢用的 SQL 敘述
假如這一個 TABLE 有 10 個 Form 會使用到,那麼這些 SQL 敘述是不是在這 10 個 From 中都有?
當這個 TABLE 要修改資料表架構時,漏改了一個就好看了!
用這種方法撰寫出來的系統,真的就像「要你命三千」了

假如把這些 TQuery 以及 SQL 都集中到一個 DataModule 中,只要跟這個 TABLE 有關的 Form 都
呼叫這個 DataModule 來做事 (新增/修改/刪除/查詢) 是不是維護起來比較方便,Form 裡面的程式
也簡潔多了?

當然,這個 DataModule 提供的功能 (也就是方法啦) 必須依照實際的狀況加以設計。
例如一個庫存用的 DataModule 可能有這些功能:
1. 新增庫存資料
2. 修改庫存資料
3. 查詢庫存資料
4. 增減庫存量
5. 盤點
6. 調撥
7. 報廢

再來,資料與畫面的連結,當然還是得依靠 TDataSource 來做。
所以 TDataSource 也可以放在 DataModule 裡面,Form 只要 uses DataModule 就可以取用當中的資源
以及要求 DataModule 做事
建議實做看看,你會得到很多的經驗與感受的
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
編輯記錄
sryang 重新編輯於 2007-09-16 01:34:08, 註解 無‧
系統時間:2024-04-27 0:02:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!