三、實現你的Mode層
Model層,就是MVC模式中的數據處理層,用來進行數據和商業邏輯的裝封,進行他的設計的時候設計到三個個概念:
------Model類。是實體類。用來保存數據庫表格的中一條記錄的所有字段的數據。並且可以驗證這條記錄數據的完整性。
------ModelManager類。 是實體類的管理類。通常每一個實體類(Model)都要有一個對應的管理類(ModelManager)。管理類可以用來管理實體類裡面的數據紀錄(例如刪除/添加/更改.....)。 但是ModelManager類不一定要有對應的Model類。
------db類。 用來管理對數據庫的聯接。 ModelManager類所有的對數據的操作。都是通過這個db類來實現的。 在整個MVC模式中。只有這個db類可以直接對數據庫進行操作。同時也只有ModelManager類可以對db類進行調用。
看上去好象是比較麻煩。但是實際上並不復雜。這種Model層設計方式。和網上購物系統的購物車程序是極其相似的。Model可以看作是購物車裡的單個商品的信息類。Manager可以看作是訂單。 訂單是用來管理采購的商品的。
下面是一個簡單的例子。應該是比較典型的。著重看他的整個設計和流程的實現。仔細研究一下。其實不難。
注意:下面例子使用的所有的類和方法都是經過簡化的。實際情況比這個要復雜的多。但是。作為一個實例已經是足夠用了。
文件夾結構:
|- Db.PHP
|- Model.PHP
|- Manager.PHP
|- ModelTest1.PHP
|- ModelTest2.PHP
|- ModelTest3.PHP
|- ModelTest4.PHP
|- Model /
|- Model / ClassModel.PHP
|- Model / StudentModel.PHP
|- Model / ClassManager.PHP
|- Model / StudentManager.PHP
注意文件夾和文件名的大小寫
內容:假設有一個數據庫,保存在兩張表,一張是class(班級)表格,一張是student(學生)的表格,
class表格字段: cls_id----------int--------not null
cls_name--------string-----not null
cls_address-----string-----null
student表格字段:stu_id----------int--------not null
stu_clsid-------int--------not null
stu_name--------string-----null
ClassModel.PHP 裡面是class表的一個實體類ClassModel
ClassManager.PHP 裡面是ClassModel的管理類ClassManager
StudentModel.PHP 裡面是student表的一個實體類StudentModel
StudentManager.PHP 裡面是StudentModel的管理類StudentManager
Db.PHP 裡面是一個數據庫操作管理類,他和裡面用的接口和正常使用情況是一樣的, 但是本例只是模擬的實現了這個借口.因此,可以在不用真實數據庫的情況下運行.
文件0:(Model.
[1] [2] [3] [4] [5] [6] 下一頁