欢迎光临散文网 会员登陆 & 注册

12-抽象工厂方法模式(Easy搞定Golang设计模式)

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 内存")
   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()
}


12-抽象工厂方法模式(Easy搞定Golang设计模式)的评论 (共 条)

分享到微博请遵守国家法律