package simpleFactory
import "fmt"
type Car interface {
Run();
}
type Audi struct {
}
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{}
}
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()
}