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

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

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

2023-07-19 17:20 作者:吾寐求之  | 我要投稿

package main


import "fmt"


type AbstractGraphicsCard interface {

? ? Display()

}


type AbstractMemory interface {

? ? Storage()

}


type AbstractCPU interface {

? ? Calculate()

}


// 抽象工廠

type AAbstractFactory interface {

? ? CreateGraphicsCard() AbstractGraphicsCard

? ? CreateStorage() AbstractMemory

? ? CreateCPU() AbstractCPU

}


//實現(xiàn)產(chǎn)品


//Intel 三大產(chǎn)品

type IntelGraphicsCard struct {

}

type IntelMemory struct {

}

type IntelCPU struct {

}


func (intel *IntelGraphicsCard) Display() { fmt.Println("Intel ?顯卡") }

func (intel *IntelMemory) Storage() ? ? ? { fmt.Println("Intel 內(nèi)存條") }

func (intel *IntelCPU) Calculate() ? ? ? ?{ fmt.Println("Intel ?CPU") }


type IntelFactory struct {

}


func (*IntelFactory) CreateGraphicsCard() AbstractGraphicsCard {

? ? return new(IntelGraphicsCard)

}

func (*IntelFactory) CreateStorage() AbstractMemory {

? ? return new(IntelMemory)

}

func (*IntelFactory) CreateCPU() AbstractCPU {

? ? return new(IntelCPU)

}


//Nvidia三大產(chǎn)品

type NvidiaGraphicsCard struct {

}

type NvidiaMemory struct {

}

type NvidiaCPU struct {

}


func (nvidia *NvidiaGraphicsCard) Display() { fmt.Println("nvidia ? 顯卡") }

func (nvidia *NvidiaMemory) Storage() ? ? ? { fmt.Println("nvidia 內(nèi)存條") }

func (nvidia *NvidiaCPU) Calculate() ? ? ? ?{ fmt.Println("nvidia ? CPU") }


type NvidiaFactory struct {

}


func (*NvidiaFactory) CreateGraphicsCard() AbstractGraphicsCard {

? ? return new(NvidiaGraphicsCard)

}

func (*NvidiaFactory) CreateStorage() AbstractMemory {

? ? return new(NvidiaMemory)

}

func (*NvidiaFactory) CreateCPU() AbstractCPU {

? ? return new(NvidiaCPU)

}


//Kingston

type KingstonGraphicsCard struct {

}

type KingstonMemory struct {

}

type KingstonCPU struct {

}


func (kingston *KingstonGraphicsCard) Display() { fmt.Println("kingston 顯卡") }

func (kingston *KingstonMemory) Storage() ? ? ? { fmt.Println("kingston 內(nèi)存條") }

func (kingston *KingstonCPU) Calculate() ? ? ? ?{ fmt.Println("kingston CPU") }


type KingstonFactory struct {

}


func (*KingstonFactory) CreateGraphicsCard() AbstractGraphicsCard {

? ? return new(KingstonGraphicsCard)

}

func (*KingstonFactory) CreateStorage() AbstractMemory {

? ? return new(KingstonMemory)

}

func (*KingstonFactory) CreateCPU() AbstractCPU {

? ? return new(KingstonCPU)

}


func main() {


? ? intelFactory := IntelFactory{}


? ? intelFactory.CreateGraphicsCard().Display()

? ? intelFactory.CreateStorage().Storage()

? ? intelFactory.CreateCPU().Calculate()


? ? //生產(chǎn)

? ? fmt.Println("========")

? ? nvidiaFactory := NvidiaFactory{}

? ? kingstonFactory := KingstonFactory{}

? ? intelFactory.CreateCPU().Calculate()

? ? nvidiaFactory.CreateStorage().Storage()

? ? kingstonFactory.CreateGraphicsCard().Display()


}


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

分享到微博請遵守國家法律
崇明县| 如皋市| 凌云县| 朔州市| 大竹县| 屯留县| 乐东| 鹰潭市| 环江| 武宣县| 拉萨市| 嘉定区| 东阿县| 固阳县| 鄂州市| 廉江市| 定结县| 台东县| 和田市| 拜城县| 湟源县| 盐津县| 安龙县| 开封县| 宜阳县| 建始县| 福州市| 广汉市| 龙口市| 宜川县| 蕉岭县| 长垣县| 西丰县| 淅川县| 收藏| 霞浦县| 竹溪县| 叙永县| 青州市| 綦江县| 句容市|