工厂方法模式
package factory
import "design/desp/models"
// 工厂方法模式
const (
ProductTechBook = iota
ProductDailyBriefs
)
type ProductType int
type IProductFactory interface {
CreateProduct(t ProductType) IProduct
}
type IProduct interface {
GetInfo() string
}
type TechFactory struct{}
func (*TechFactory) CreateProduct(t ProductType) IProduct {
switch t {
case ProductTechBook:
return &models.Book{}
}
return nil
}
type DailyFactory struct{}
func (*DailyFactory) CreateProduct(t ProductType) IProduct {
switch t {
case ProductDailyBriefs:
return &models.Briefs{}
}
return nil
}
最后更新于