五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
正宁县| 日土县| 达州市| 北海市| 赫章县| 城市| 和平区| 浪卡子县| 兴业县| 含山县| 重庆市| 扶风县| 荥经县| 西城区| 闻喜县| 高青县| 平顶山市| 平南县| 光泽县| 磐石市| 清流县| 灵丘县| 阳西县| 孟州市| 中方县| 朝阳区| 察隅县| 田林县| 扎赉特旗| 伊吾县| 南部县| 界首市| 芒康县| 靖远县| 盐津县| 沾化县| 滨州市| 揭西县| 民和| 遂平县| 广丰县|