mvc分層裡model的分層思路

來源:互聯網
上載者:User
單說model層
在運用某php架構的基礎上
自己分封裝的curd資料的基本通用方法、
帶有一些特定邏輯的處理資料方法、
一般是以怎麼結構存在model層裡的
大家可以把自己做的項目的分層思路貼出來~
可不可以在層裡運用靜態方法
來提高速度
以上

回複內容:

單說model層
在運用某php架構的基礎上
自己分封裝的curd資料的基本通用方法、
帶有一些特定邏輯的處理資料方法、
一般是以怎麼結構存在model層裡的
大家可以把自己做的項目的分層思路貼出來~
可不可以在層裡運用靜態方法
來提高速度
以上

model是商務邏輯的層,會比較複雜。

我一般會把model分為3層

  1. 底層:curd,和資料庫直接打交道,和業務無關。
  2. 中介層:由於底層的curd和業務無關,中介層通過組合底層模型的方法來實現一些比較複雜的邏輯,比如使用者登陸功能,先得過濾表單,然後調用底層的模型去資料庫查詢,如果成功要更新一些記錄(上次登陸時間、ip等),如果失敗要寫一些日誌。總之就是組合調用底層封裝好的模型,實現常用的功能。
  3. 上層:更抽象,組合調用中介層來實現特定邏輯。這一層的更偏向非公用的,而像使用者登入、註冊或者發文章這類的,幾乎所有系統都會用到,就寫到中介層去。那上次就負責和C層打交道,通過controller得知使用者要幹嘛,然後把這個請求拆分成不同模組交給中介層去幹。

當然上層其實並不是必要的,這類邏輯你也可以寫在controller,但是我更喜歡寫在model裡,這樣controller會更加一目瞭然,分得更細,就更好查錯,耦合也更低

model層一般用於做針對資料模型的商務邏輯,跟control層的商務邏輯是有差別的。
靜態方法當然可以放在model層中,給control層調用。

如果系統龐大複雜,可以進行業務領域模型建模。

FormModel
ActiveRecordModel
LogicModel

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.