亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Model難道只是個對數據庫增刪查改接口的封裝嗎?

Model難道只是個對數據庫增刪查改接口的封裝嗎?

PHP
慕無忌1623718 2023-04-14 17:17:11
一直在用MVC模式編程,突然對其中Model層的定義有些疑惑,要說其它兩層把,一個負責展現的視圖,一個負責流程的控制,清晰明了,但是其中的Model又指的什么呢?從字面上理解,都稱其為模型層,什么是模型?大多數Model的定義就像這樣class User extends Model{     public function add(array $user)     {        // 新增代碼     }     public function delete($id)     ... }Model難道只是個對數據庫增刪查改接口的封裝嗎?還有些人認為,Model應該是對數據表的映射,它難道是一種ORM的實現?
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

取決于你項目的規模和復雜程度,如果僅僅是簡單的數據庫CRUD,Model完全被ORM取代沒什么問題。

在我的項目中,因為有模塊話以及多種數據來源的復雜性。Model又被細分為三層:

最上層負責事件調度和緩存調度

中間抽象出一層,我稱之為ModelItem,一個ModelItem的數據來源可能是ORM,也可能是來自Webservice,ModelItem之間可以進行數據與數據間的關系橋接,也就是傳統的One2One,Many2Many等關系,但是這種關系并不限于ORM,而是普遍適用于所有數據,所以很有可能一個來自數據庫的數據Product可以和來自Taobao Webservice的數據進行鏈接。

最下層是數據接口的底層實現,包括ORM和Webservice。

所以我的結論是:Model的功能包含但并不限于將數據庫抽象為對象,如果項目簡單,Model可以等價于ORM,如果復雜,Model最好再細分。


查看完整回答
反對 回復 2023-04-17
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

如果按照目前流行的 api 和restful api 接口的 前后端分離的架構.

那么php 已經基本淪為數據源提供, 那么 mvc中 php 只處理 model 就是crud 然后 php c 負責調度和處理邏輯 拼裝數據. v已經沒有了

前端js 還要在分 mvc 前端model 負責接收數據 同時也負責一些為了頁面顯示的數據的拼裝.

直接總體就變成 mcmvc

而且隨著前端的發展,針對事件機制的框架 例如mvvm結構 實際變成了mcmvvm

如果后端是nosql 可能就是mmvvm c也不太需要了. 一些邏輯也放到前端了.


查看完整回答
反對 回復 2023-04-17
  • 2 回答
  • 0 關注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號