国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
高雄市| 临汾市| 定安县| 集安市| 治县。| 葫芦岛市| 太康县| 禹州市| 顺昌县| 霍林郭勒市| 桃园县| 广丰县| 根河市| 繁峙县| 南康市| 盐城市| 涞源县| 卢龙县| 连山| 桃江县| 左云县| 滦南县| 香港 | 兴仁县| 贡山| 远安县| 临猗县| 柳林县| 峨山| 宜昌市| 潜江市| 精河县| 丰顺县| 藁城市| 大理市| 怀安县| 墨脱县| 栾城县| 田东县| 丘北县| 沙田区|