无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
吉木乃县| 潢川县| 临桂县| 雷山县| 肃宁县| 梁河县| 阳信县| 福海县| 咸丰县| 股票| 曲阜市| 阿拉善盟| 兴仁县| 涟水县| 华宁县| 桦甸市| 兴业县| 彩票| 安仁县| 湟源县| 梨树县| 咸丰县| 阳城县| 岱山县| 安岳县| 台南县| 辽阳县| 信丰县| 尼木县| 杂多县| 广平县| 萝北县| 淮安市| 揭西县| 九龙坡区| 拉萨市| 盐山县| 淳安县| 灵璧县| 罗源县| 富锦市|