package handler import ( "management/internal/config" "management/internal/erpserver/biz" "management/internal/erpserver/handler/common" "management/internal/erpserver/handler/system" "management/internal/pkg/session" "management/internal/pkg/tpl" ) // IHandler 定义了Handler需要实现的方法. type IHandler interface { // 获取 Common Handler 接口. CommonHandler() common.CommonHandler // 获取 System Handler 接口. SystemHandler() system.SystemHandler } // handler 是 IHandler 的一个具体实现. type handler struct { conf *config.Config render tpl.Renderer session session.ISession biz biz.IBiz } // 确保 handler 实现了 IHandler 接口. var _ IHandler = (*handler)(nil) // NewHandler 创建一个 IHandler 类型的实例. func NewHandler(conf *config.Config, render tpl.Renderer, session session.ISession, biz biz.IBiz) *handler { return &handler{ conf: conf, render: render, session: session, biz: biz, } } // CommonHandler 返回一个实现了 CommonHandler 接口的实例. func (h *handler) CommonHandler() common.CommonHandler { return common.NewCommonHandler(h.conf, h.render, h.biz.CommonV1()) } // SystemHandler 返回一个实现了 SystemHandler 接口的实例. func (h *handler) SystemHandler() system.SystemHandler { return system.NewSystemHandler(h.render, h.session, h.biz) }