package fatory import "fmt" type Device interface{ StartDevice() } type KeyBoard struct{} func (k *KeyBoard) StartDevice() { fmt.Println("Keyboard is ready to work!") } type Mouse struct{} func (m *Mouse) StartDevice() { fmt.Println("Mouse is ready to work!") } func NewDevice(device string) Device { switch device { case "k": return &KeyBoard{} case "m": return &Mouse{} default: return nil }
测试用例
package fatory import "testing" func TestNewDevice(t *testing.T) { NewDevice("k").StartDevice() NewDevice("m").StartDevice() }