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