|
作者:eddison本文从设计、规范、陷阱到相关实现以例证说明并结合自己思考,详细解释了该如何写golang好代码。发表前作者已经详细校对,如本文有遗漏的错误请指出,带来的不便请谅解。Golang实现SOLID设计原则本章节按照设计模式中的核心设计原则介绍在Go语言中的实现。单一职责原则类的设计尽量做到只有一个原因引起变化。在交易的场景中,我们需要做一些交易存储、验证,我们可以声明交易的结构体,这个结构体是为了存储每笔交易。但是验证的功能我们可以拆开,这样代码更具有维护性、测试的编写也更简单方便。type Trade struct { TradeID int Symbol string Quantity float64  rice float64}type TradeRepository struct { db *sql.DB}func (tr *TradeRepository) Save(trade *Trade) error { _, err := tr.db.Exec("INSERT INTO trades (trade_id, symbol, quantity, price) VALUES (?, ?, ?, ?)", trade.TradeID, trade.Symbol, trade.Quantity, trade.Price) if err != nil { return err } return nil}type TradeValidator struct {}func (tv *TradeValidator) Validate(trade *Trade) error { if trade.Quantity
|
|