概述
mvc框架由model,view,controller組成,執行流程一般是:在controller訪問model獲取數據,通過view渲染頁面。
mvc模式是web開發中的基礎模式,采用的是分層設計,各層之間職責分明。然而事與願違,當我們日積月累的基於mvc模式開發之后,會逐漸的感受到層與層之間存在粘連和職責模棱兩可的地方,這就是service層出現的重要原因。
問題是什么?
問題的本質是:業務邏輯粘連了C層和M層,應該從C層&M層解耦出來,成為獨立的Service層。
在C層直接實現業務邏輯,缺點:
1. 不同的controller之間,無法共享通用的業務邏輯,比如:折扣計算。
業務邏輯升級,需直接在原代碼上做修改兼容,導致controller代碼不斷膨脹復雜。
service層的作用:
service是業務層,是使用一個或多個模型執行操作的方法。
1. 封裝通用的業務邏輯,操作。
如一些數據的檢驗,可以通用處理。
2. 與數據層的交互。
3. 其他請求:如遠程服務獲取數據,如第三方api等。
補充:
Model和Service驗證方面
Model校驗:某些字段不能為空等數據層的校驗
Service驗證:邏輯層的校驗,避免一些不合理的出現,尤其是調用多個模型
ci框架擴展service
http://www.cnblogs.com/SLchuck/p/5804555.html