当前位置: 首页 > news >正文

孵化基地网站怎么建设高校思政专题网站建设

孵化基地网站怎么建设,高校思政专题网站建设,西部数码网站管理助手搭建织梦,用织梦做网站费用文章目录 前言1 项目目录结构#xff1a;2 初始化函数3 router4 api5 service6 dao7 Reference 前言 为降低代码耦合性#xff0c;采用依赖注入的设计模式。原始请求路径#xff1a;router - api - service - dao。请求的为实际方法#xff0c;具有层层依赖的… 文章目录 前言1 项目目录结构2 初始化函数3 router4 api5 service6 dao7 Reference 前言 为降低代码耦合性采用依赖注入的设计模式。原始请求路径router - api - service - dao。请求的为实际方法具有层层依赖的关系。现将方法抽象为接口即a依赖b但a不创建或销毁b仅使用bb的创建或销毁交给容器。 1 项目目录结构 ├─ddd │ ├─router.go │ │ │ ├─api │ │ └─api_abstract.go // 抽象接口 │ │ └─api_dog.go // dog实现接口 │ │ │ ├─service │ │ └─srv_abstract.go │ │ └─srv_dog.go │ │ │ ├─dao │ │ └─dao_abstract.go │ │ └─dao_dog.go │ │ │ ├─model │ │ ├─dto │ │ └─schema 2 初始化函数 // 依赖注入 func InitDog() *DogApiImpl {d : dao.NewDogDaoImpl(global.DB)s : service.NewDogSrvImpl(d)return api.NewDogApiImpl(s) }3 router func Router() *gin.Engine {dog : init.InitDog()r.GET(/info, dog.Info)... }4 api api_abstract.go中为抽象接口 type DogAPIIface interface {Create(ctx *gin.Context)Update(ctx *gin.Context)Info(ctx *gin.Context)List(ctx *gin.Context) }api_dog.go中为api的实现方法 type DogApiImpl struct {srv service.DogSrvIface }var _ DogAPIIface (*DogApiImpl)(nil)func NewDogApiImpl(srv service.DogSrvIface) *DogApiImpl {return DogApiImpl{srv: srv,} }func (da *DogApiImpl) Info(ctx *gin.Context) {var req dto.DogInfoReqif err : ctx.ShouldBindUri(req); err ! nil {return}res, err : da.srv.Info(ctx, req.ID)if err ! nil {return}helper.Response.ResponseSuccessWithData(ctx, consts.Success, res) }// 其他待实现方法 func (da *DogApiImpl) Create(ctx *gin.Context) { }...5 service srv_abstract.go中为抽象接口 type DogSrvIface interface {Create(ctx *gin.Context, req *dto.DogCreateReq) errorUpdate(ctx *gin.Context, req *dto.DogUpdateReq) errorInfo(ctx *gin.Context, req *dto.DogInfoReq) (*dto.DogInfoRes, error)List(ctx *gin.Context, req *dto.DogListReq) ([]*dto.DogInfoRes, int, error) }srv_dog.go中为service的实现方法 type DogSrvImpl struct {dao dao.DogDaoIface }var _ DogSrvIface (*DogSrvImpl)(nil)func NewDogSrvImpl(dao dao.DogDaoIface) *DogSrvImpl {return DogSrvImpl{dao: dao,} }func (ds *DogSrvImpl) Info(ctx *gin.Context, req *dto.DogInfoReq) (*dto.DogInfoRes, error) {var data dto.DogInfoReq// 具体业务逻辑dog, err : ds.dao.FindByID(ctx, id)if err ! nil {return nil, err}return dog, err } ...6 dao dao_abstract.go中为抽象接口 type DogDaoIface interface {Create(ctx *gin.Context, req *dto.DogCreateReq) errorUpdate(ctx *gin.Context, req *dto.DogUpdateReq) errorInfo(ctx *gin.Context, req *dto.DogInfoReq) (*dto.DogInfoRes, error)List(ctx *gin.Context, req *dto.DogListReq) ([]*dto.DogInfoRes, int, error) }dao_dog.go中为dao的实现方法 type DogDaoImpl struct {db *gorm.DB }var _ dao.DogDaoIface (*DogDaoImpl )(nil)func NewDogDaoImpl(db gorm.DB) *DogDaoImpl{return DogDaoImpl{db: db,} }func (ds *DogSrvImpl) Info(ctx *gin.Context, req *dto.DogInfoReq) (*dto.DogInfoRes, error) {// 具体业务逻辑return nil, nil } ...7 Reference https://blog.hackerpie.com/posts/testing/golang-write-testable-codes/ https://juejin.cn/post/7146852457774055437
http://www.hkea.cn/news/14479816/

相关文章:

  • 如何构建一个网站没有后台的网站怎么做排名
  • 自适应网站制作公司加速器免费加速
  • 怎么设置网站关键词微信二维码在线制作
  • 网站制作公司排名前十起名字大全免费
  • 无锡做网站公司网店设计是什么
  • 网站广告联盟怎么做的图书馆网站开发策划书
  • 长沙网站建设哪个公司好公司做网络宣传哪个网站比较好
  • 评估网站建设方案镇安县住房和城乡建设部网站
  • 汕头建设局网站手机网站建设进度
  • led网站模板宁波租房网
  • 网站建设规划书费用预算wordpress 顶部工具条
  • 定西地网站建设产品宣传短视频
  • 哈尔滨网站建设贴吧广州网站建设 致茂
  • 中国中小企业网站建设情况批量查询网站是否正常
  • wordpress个人展示网站新的网站建设技术
  • 网站设置的建设过程和准备阶段想学编程去哪里找培训班
  • 聊城做网站费用价位3d做号网站
  • 做博客网站最好用什么系统推广联盟平台
  • 玄武网站建设帝国cms网站地图xml
  • 企业网站psd模板做网站 郑州公司
  • 金泉网做网站东莞网络营销外包公司
  • 企业网站建设的重要性及意义产品推销
  • 百度是门户网站吗泗塘新村街道网站建设
  • 昆明做网站推上海做公益活动有哪些好的网站
  • 网站建设网站服务流程企业管理软件销售
  • 网站首页大图轮播做个网站得花多少钱
  • 服务网站设计案例万网域名注册商
  • 济源市网站建设建网站为什么要租空间
  • 网站建设高考题wordpress网站采集插件
  • 长沙专业个人做网站哪家好农村自建房设计图 效果图