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

歡迎光臨散文網(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è)計模式)的評論 (共 條)

分享到微博請遵守國家法律
都匀市| 福建省| 吉木萨尔县| 武定县| 弥勒县| 锡林浩特市| 呼玛县| 抚宁县| 吉水县| 沙洋县| 舟山市| 元谋县| 屏东县| 武穴市| 贡嘎县| 加查县| 潼关县| 二连浩特市| 晋江市| 兴山县| 刚察县| 鄂尔多斯市| 库车县| 涟源市| 靖州| 富顺县| 汉阴县| 辽阳市| 旌德县| 扎赉特旗| 宁国市| 天台县| 乌鲁木齐市| 日喀则市| 安泽县| 宁津县| 九江县| 汽车| 南江县| 富顺县| 方山县|