最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

12-抽象工廠方法模式(Easy搞定Golang設(shè)計(jì)模式)

2023-04-07 17:14 作者:輕風(fēng)莫染塵  | 我要投稿

package main


import "fmt"


//-----抽象層-----

type CPU interface { //cpu生產(chǎn)類接口

? ? Calculate()

}

type MEM interface { //內(nèi)存生產(chǎn)類接口

? ? Storage()

}

type CARD interface { //顯卡生產(chǎn)類接口

? ? DisPlay()

}

type Producer interface { //總生產(chǎn)接口(抽象工廠)

? ? CreatCPU()

? ? CreatMemory()

? ? CreatCard()

}


//-----實(shí)現(xiàn)層------


type CpuInter struct{}

type CpuNvdia struct{}

type CpuKing struct{}


func (cpu *CpuInter) Calculate() {

? ? fmt.Println("CpuInter")

}

func (cpu *CpuNvdia) Calculate() {

? ? fmt.Println("CpuNvdia")

}

func (cpu *CpuKing) Calculate() {

? ? fmt.Println("CpuKing")

}


type MemInter struct{}

type MemNvdia struct{}

type MemKing struct{}


func (mem *MemInter) Storage() {

? ? fmt.Println("MemInter")

}

func (mem *MemNvdia) Storage() {

? ? fmt.Println("MemNvdia")

}

func (mem *MemKing) Storage() {

? ? fmt.Println("MemKing")

}


type CardInter struct{}

type CardNvdia struct{}

type CardKing struct{}


func (card *CardInter) DisPlay() {

? ? fmt.Println("CardInter")

}

func (card *CardNvdia) DisPlay() {

? ? fmt.Println("CardNvdia")

}

func (card *CardKing) DisPlay() {

? ? fmt.Println("CardKing")

}


type Inter struct{}

type Nvidia struct{}

type King struct{}


func (abs *Inter) CreatCPU() CPU {

? ? cpu := new(CpuInter)

? ? return cpu

}

func (abs *Nvidia) CreatCPU() CPU {

? ? cpu := new(CpuNvdia)

? ? return cpu

}

func (abs *King) CreatCPU() CPU {

? ? cpu := new(CpuKing)

? ? return cpu

}

func (abs *Inter) CreatMemory() MEM {

? ? mem := new(MemInter)

? ? return mem

}

func (abs *Nvidia) CreatMemory() MEM {

? ? mem := new(MemNvdia)

? ? return mem

}

func (abs *King) CreatMemory() MEM {

? ? mem := new(MemKing)

? ? return mem

}

func (abs *Inter) CreatCard() CARD {

? ? card := new(CardInter)

? ? return card

}

func (abs *Nvidia) CreatCard() CARD {

? ? card := new(CardNvdia)

? ? return card

}

func (abs *King) CreatCard() CARD {

? ? card := new(CardKing)

? ? return card

}


//------邏輯層------

func main() {

? ? inter := new(Inter)

? ? cpu := inter.CreatCPU()

? ? cpu.Calculate()


? ? king := King{}

? ? mem := king.CreatMemory()

? ? mem.Storage()

}


12-抽象工廠方法模式(Easy搞定Golang設(shè)計(jì)模式)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
永昌县| 白河县| 呈贡县| 普宁市| 任丘市| 米脂县| 京山县| 江都市| 长春市| 剑川县| 垦利县| 扎兰屯市| 八宿县| 威海市| 辛集市| 大城县| 琼海市| 深州市| 肇州县| 曲靖市| 大荔县| 黄石市| 桂林市| 张家口市| 新密市| 宁陕县| 吉隆县| 柳林县| 西华县| 威信县| 崇文区| 丰县| 溆浦县| 格尔木市| 开原市| 曲阜市| 石阡县| 青铜峡市| 石狮市| 汝南县| 湛江市|