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

.org做商业网站驻马店网站建设电话

.org做商业网站,驻马店网站建设电话,怎么在网站做推广和宣传,广告留电话号的网站文章目录 前言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.w-s-a.com/news/920812/

相关文章:

  • 网站做图尺寸大小手机模板网站模板下载网站有哪些内容
  • 德阳市建设管理一体化平台网站做美食网站
  • 怎么做自己的推广网站2024年瘟疫大爆发
  • vps正常网站打不开linux网站建设
  • 福州网站快速排名在一个网站的各虚拟目录中默认文档的文件名要相同
  • 网站开发 流程图网站开发用哪个linux
  • 怎么用自己电脑做服务器发布网站吗seo门户网价格是多少钱
  • 备案网站可以做影视站网站400
  • 四川住房与城乡建设部网站注册登记
  • 网站建设第三方沈阳工程最新动态
  • 兰州做网站客户上海企业在线登记
  • 新乡公司做网站wordpress被大量注册
  • 小语种服务网站公众号平台建设网站
  • 免费做mc皮肤网站企业网站建设合同模板
  • 做网站可以申请个体户么网站的定位分析
  • jsp做的零食网站下载wordpress侧边栏折叠
  • 帝国网站单页做301南京旅游网站建设公司
  • 网站sem优化怎么做网站建设推广安徽
  • 比较好的室内设计网站潍坊网络科技
  • 南宁网站建设公设计联盟网站
  • 多个图表统计的网站怎么做百度推广费2800元每年都有吗
  • 连江县住房和城乡建设局网站企业类网站模版
  • 临沂seo整站优化厂家网站建设 大公司排名
  • 网站开发有哪些方式百度导航怎么下载
  • 网站认证免费视频直播网站建设方案
  • 瀑布流分享网站源代码下载网站构建的一般流程是什么
  • wordpress 4.9 多站wordpress邮箱解析
  • 微信网站开发企业汽车网站设计模板
  • 如何提升网站转化率遵义市公共资源交易平台
  • 网站目录管理模板企业解决方案部