小编sol*_*w74的帖子

Golang repostiory模式

我尝试在Go app(简单的Web服务)中实现存储库模式,并尝试找到更好的方法来转义代码重复.

这是一个代码

接口是:

type IRoleRepository interface {
    GetAll() ([]Role, error)
}

type ISaleChannelRepository interface {
    GetAll() ([]SaleChannel, error)
}
Run Code Online (Sandbox Code Playgroud)

并实施:

func (r *RoleRepository) GetAll() ([]Role, error) {
        var result []Role
        var err error
        var rows *sql.Rows

        if err != nil {
            return result, err
        }

        connection := r.provider.GetConnection()
        defer connection.Close()

        rows, err = connection.Query("SELECT Id,Name FROM Position")
        defer rows.Close()

        if err != nil {
            return result, err
        }

        for rows.Next() {
            entity := new(Role)
            err = sqlstruct.Scan(entity, rows)

            if …
Run Code Online (Sandbox Code Playgroud)

go repository-pattern

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×1

repository-pattern ×1