在 GoFrame (gogf/gf) 框架中有明確的代碼分層設計,分別是 api, service, dao, model.
model (結構模型)一般由工具自動生成,用於定義數據結構,只可被 model 內部訪問。
dao (數據訪問)層的代碼只包含通用的數據操作方法,代碼往往通過工具生成,很少自定義。往往只能被 service 調用,不能被 api 調用。
service (邏輯)層可以調用 dao 里對象,用於特定業務邏輯的實現、封裝。
api (接口定義) 對外提供服務,訪問 service 層的對象。路由注冊時訪問 api 對象。
model,dao 這兩部分在 Laravel 中就是 Model (自帶ORM)的涵蓋范圍。
service 在 Laravel 中並不存在這樣的目錄,一般自建叫 Repository 或者叫 Logic 的目錄用於封裝業務邏輯來訪問 Model。
api 在 Laravel 中就是控制器的概念,路由中注冊對外提供服務。
GoFrame 同樣慣例約定大於強制,便於寫出統一、安全、可維護的業務代碼。
代碼分層設計:https://goframe.org/pages/viewpage.action?pageId=3672442
對象封裝設計:https://goframe.org/pages/viewpage.action?pageId=3672526
Refer:Golang全棧框架有哪些