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() }