12-抽象工廠方法模式(Easy搞定Golang設(shè)計模式)
2023-08-12 16:45 作者:senglin00001 | 我要投稿

package main import "fmt" type Computer struct { AbstractCpu AbstractMem AbstractDis } type AbstractCpu interface { computer() } type InterCpu struct { } func (c *InterCpu) computer() { fmt.Println(" inter cpu 計算功能") } type AbstractMem interface { storage() } type InterMem struct { } func (i *InterMem) storage() { fmt.Println("inter mem 存儲功能") } type AbstractDis interface { display() } type InterDis struct { } func (m *InterDis) display() { fmt.Println("顯卡具有顯示功能") } type ComputerFactory interface { CreateCpu() AbstractCpu CreateMem() AbstractMem CreateDis() AbstractDis } type InterComputerFactory struct{} func (inter *InterComputerFactory) CreateCpu() AbstractCpu { fmt.Println("生成inter cpu") var cpu AbstractCpu cpu = new(InterCpu) return cpu } func (inter *InterComputerFactory) CreateMem() AbstractMem { fmt.Println("生成inter 內(nèi)存") var mem AbstractMem mem = new(InterMem) return mem } func (inter *InterComputerFactory) CreateDis() AbstractDis { fmt.Println("生成inter 顯示器") var dis AbstractDis dis = new(InterDis) return dis } func main() { var fac ComputerFactory fac = new(InterComputerFactory) interCpu := fac.CreateCpu() interMem := fac.CreateMem() interDis := fac.CreateDis() //組裝電腦 com := Computer{interCpu, interMem, interDis} com.AbstractCpu.computer() com.AbstractMem.storage() com.AbstractDis.display() }
標(biāo)簽: