thinkphp中的logic和service層是幹什麼用的?

來源:互聯網
上載者:User
關鍵字 Model
我平時開發只用到了Model層,請問這兩個層是幹啥用的?我百度過相關內容,都是直接照著官方手冊抄了一遍,也沒具體說清楚,能否舉個例子說明一下?

回複內容:

說一下我個人的理解吧,傳統的MVC三層在面對系統越來越大,商務邏輯越來越複雜的情況下,開始顯得“不夠用”。
不夠用怎麼辦,再抽象再分層唄。

把商務邏輯處理部分抽象出來作為一層,這一層在M之上,C之下,名為 Logic 。
把可以作為公用的服務抽象出來作為一層,這一層不與任何一層耦合,僅提供自身的服務,名為Service 。


舉個栗子:
一個大型的網站,或者現在比較流行的介面,微服務什麼什麼的,
不可能只是發請求,讀寫資料,返回資料這麼簡單的吧,
接受到請求之後需要對請求進行處理,讀寫資料之後需要對資料進行處理,
這些處理操作多了之後,你會發現放在C層感覺怪怪的, C層越來越臃腫了
放在M層感覺也不對, M層應該是與資料庫打交道的,商務邏輯的處理不應該放在這裡;
放在 Logic 層就最好了,業務變了,C層和M層都不需要改動,只需要改動中間的 Logic 就好了。

至於 Service 層放什嗎?那可多了,
小到檔案上傳,下載,圖片處理,儲存
大到日誌,錯誤處理,郵件,授權,隊列,計劃任務,支付,驗證,加密,簡訊,巴拉巴拉,嗶哩嗶哩,啪啪啪啪
這些很多地方都要用到的我們都可以抽象出來作為一個服務啊~

就醬紫~想到再來補充, 記得點贊哦~不請自來
手機簡單回答下

通常簡單項目用mvc分層開發就足夠了。隨著項目發展越來越大。需要清晰的架構來降低代碼的複雜度。
最容易想到改善的有2點

1三方服務.這類代碼屬於公用代碼.與商務邏輯其實關係不大.比如 日誌.郵件.手機簡訊.等等

2模型和模型之間耦合.model通常是基於領域模型抽象以後封裝的單一指責的類或者函數集合.很多需要組合多個model實現的商務邏輯.最開始也可放在模型層或者其他方式放在其他獨立的檔案實現.但是這樣代碼複雜度會越來越高.維護成本很大.這時候可以抽象出在m和c之間的logic層處理這些為了方便後續服務化謝邀
沒用過,不知道。

個人理解: 為了精確定義 C層和M層 , 減少其中的邏輯,拆分功能 才引入的其他層級概念
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.