package simpleFactory
import "fmt"
//接口设计
type Car interface {
Run();
}
//产品结构1
type Audi struct {
}
//产品结构2
type Byd struct{
}
//接口实现
func (this *Audi) Run(){
fmt.Println("奥迪再奔跑")
}
//接口实现
func (this *Byd) Run(){
fmt.Println("比亚迪再奔跑")
}
func MakeCar(ctype string) Car{
switch ctype {
case "audi":
return &Audi{}
case "byd":
return &Byd{}
default:
return nil
}
}
func AudiCar() Car{
return &Audi{}
}
func BydCar() Car{
return &Byd{}
}
//client code
package simpleFactory
import (
"fmt"
"testing"
)
//调用者
func TestCar(t *testing.T){
var c1 Car
var c2 Car
c1 = MakeCar("audi")
c2 = MakeCar("byd")
c1.Run()
c2.Run()
fmt.Println("-----------------------")
c1 = AudiCar()
c2 = BydCar()
c1.Run()
c2.Run()
}
2-1简单工厂实现(静态工厂)-golang
最新推荐文章于 2025-12-01 18:55:39 发布
195

被折叠的 条评论
为什么被折叠?



