goft
搜索文档…
领域层之仓储
形态上就是一个接口定义
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的员工 来写接口实现。
从而实现了业务和数据持久化的解耦,从一定程度来说也是 “员工解耦”
复制链接