Go 设计模式--简单的工厂模式

简单的工厂模式,又称为静态工厂方法,它属于类创建型模式。在简单工厂模式中,可以根据参数创建不同的实例。简单工厂模式专门定义一个类来创建其他类的实例。

在以下情况下可以使用简单工厂模式:

  • 工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法中的业务逻辑太过复杂。
  • 客户端只知道传入工厂类的参数,对于如何创建对象不关心:客户端既不需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数。

实现:

package simpleFac

import(
	"fmt"
)

//创造一个父类接口
type Fac interface{
	Say()
}

//子产品1
type class1 struct{}


func (this * class1)Say(){
	fmt.Println("class1 say hello")
}

//子产品2
type class2 struct{}

func (this * class2)Say(){
	fmt.Println("class2 say hello")
}

//工厂方法
func NewClass(arg int)Fac{
	if arg == 1 {
		return &class1{}
	} else if arg == 2{
		return &class2{}
	} else {
		return nil
	}
}

  

	//使用工厂函数创造两个product
	simpleFac.NewClass(1).Say()//输出: class1 say hello
	simpleFac.NewClass(2).Say()//输出: class2 say hello

  

 

posted @ 2020-04-03 14:10  醉深梦始  阅读(415)  评论(0)    收藏  举报