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


发表评论

您的电子邮箱地址不会被公开。