docs: 更新依赖注入规范 — 构造器注入 + ISP 接口隔离

This commit is contained in:
2026-06-21 23:54:48 +08:00
parent 1933ea86b4
commit 2d1dd5d401

View File

@ -100,12 +100,23 @@ gin.H{
## 依赖注入 ## 依赖注入
当前阶段 Controller 直接在方法内创建 Service 实例。后期引入 DI 容器后统一管理。 使用构造器注入模式Controller/Service/Middleware 的依赖通过构造函数传入:
```go ```go
// 当前 // 构造器注入依赖
func (ac *AuthController) RegisterPage(c *gin.Context) { ... } func NewAuthController(authService authUseCase, sm *session.Manager, limiter rateLimiter, cfg *config.Config, siteSettings *config.SiteSettings) *AuthController {
return &AuthController{authService: authService, sessionManager: sm, rateLimiter: limiter, cfg: cfg, siteSettings: siteSettings}
// 后期 }
func NewAuthController(svc *AuthService) *AuthController { ... } ```
Controller 层通过 **ISP 接口隔离** 声明最小依赖 —— 只声明自己需要的方法子集,不依赖完整 Service 接口:
```go
// controller/admin/interfaces.go
type siteSettingUseCase interface {
GetSettings() map[string]string
UpdateSetting(key, value string) error
UpdateBoolSetting(key string, value bool) error
GetAuditSettings(defaults *service.AuditDefaults) *service.AuditSettings
}
``` ```