Skip to content

Latest commit

 

History

History
82 lines (52 loc) · 1.06 KB

简单工厂模式.md

File metadata and controls

82 lines (52 loc) · 1.06 KB

简单工厂模式

意图:

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行 主要解决接口选择问题

类图:

返回的实例都实现同一接口

应用实例:

import "fmt"

// 定义一个女孩的接口让下面的类隐式继承
type gril interface {
	weight()
}
type FatGril struct {}

func (FatGril) weight()  {
	fmt.Println("100kg")
}
type ThinGirl struct {}

func (ThinGirl) weight ()  {
	fmt.Println("45kg")
}
// 简单工厂
type GirlFactory struct {}

func (*GirlFactory) CreateGirl (like string) gril {
	switch like {
		case "fat":
			return &FatGril{}
		case "thin":
			return &ThinGirl{}
		default:
			return nil
	}
}
// 测试    
factor := &GirlFactory{}

Fat := factor.CreateGirl("fat")
Fat.weight()
Thin := factor.CreateGirl("thin")
Thin.weight()
100kg
45kg