php 工厂模式需要使用继承,Son extends Father
的写法,而golang中没有这种,但也可以通过这种方式实现,接口的方式。
package pkg
type Father interface {
Add(id interface{},value interface{}) error
Get(id interface{}) interface{}
}
type son struct {
}
func NewSon() Father {
return &son{}
}
func (s *son) Add(id interface{},value interface{}) error {
}
func(s *son) Get(id interface{}) interface{} {
}
使用的时候:
s := pkg.NewSon()
s.Add()
s.Get()
到时候如果需要替换,只需要替换 pkg.NewSon()
这个即可,不用再去改其他地方。