Golang设计模式——工厂模式
筑梦攻城狮 ·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()
}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()
}