领域层之仓储

形态上就是一个接口定义

type IUserRepo interface {
   FindById(IModel) error
   FindByName(IModel) error
   SaveUser(IModel) error
   UpdateUser(IModel) error
   DeleteUser(IModel) error

}

具体实现在其它层实现

小伙伴要想了,为啥要这么做?直接调Gorm直接干不完事了么?

确实,小项目或私活这样是可以的。

接下来举个栗子:

譬如做项目,如果用的是直接调用ORM。部门有个业务非常熟悉的人,可以写出很屌的业务代码。 但是 此时客户突然说数据库不能用mysql,要用sqlserver.(有的同学可能会说ORM支持数据库无缝切换的,那亲,你就太年轻了~~~)

结果,这个 “业务非常熟悉的人“ 就得去学Sqlserver ,项目进度就要拖后。

而用了仓储后,他只要把接口定义好。然后“自说自话”的写业务代码就可以了。然后可以让其他会sqlserver的员工 来写接口实现。

从而实现了业务和数据持久化的解耦,从一定程度来说也是 “员工解耦”

最后更新于