package factoryMethod
import "fmt"
type Car interface {
Run()
}
type AudiCar struct {
}
type BydCar struct {
}
func (this *AudiCar) Run(){
fmt.Println("Audi is Running")
}
func (this *BydCar) Run(){
fmt.Println("Byd is Running")
}
//工厂方法接口
type CarFactory interface {
CreateCar() Car
}
type AudiFactory struct {
}
type BydFactory struct {
}
func (this *AudiFactory) CreateCar() Car {
return &AudiCar{}
}
func (this *BydFactory) CreateCar() Car{
return &BydCar{}
}
//client code
package factoryMethod
import(
"testing"
)
func TestCaFactory(t *testing.T) {
var c1 Car = (&AudiFactory{}).CreateCar()
var c2 Car = (&BydFactory{}).CreateCar()
c1.Run()
c2.Run()
}
2工厂方法模式-golang
最新推荐文章于 2025-01-20 21:51:27 发布