Go 設計模式--工廠模式


基於簡單的工廠模式進行修改,不再設計一個按鈕工廠類來統一負責所有產品的創建,而是將具體按鈕的創建過程交給專門的工廠子類去完成。不同的子工廠負責創建不同的產品(實例)

package factory

import(
	"fmt"
)

//玩具工廠
type ToyFactory interface{
	Create()Toy //制造功能,返回一個玩具
}

//所有玩具都有一個功能
type Toy interface{
	Speak() //都會說話,但是每種玩具說的話不一樣
}

//車間1 可以制作玩具貓,就叫貓工廠吧
type CatFactory struct {

}

//玩具貓模型
type Cat struct {

}

//玩具貓會說話
func (this *Cat)Speak(){
	fmt.Println("hello,I am a Cat...")
}

//車間1 制作玩具貓的方法
func (this *CatFactory)Create() Toy {
	return &Cat{}
}

//車間2 可以制作玩具狗,就叫狗工廠吧
type DogFactory struct{

}

//狗模具
type Dog struct {

}

//狗也會說話
func (this *Dog)Speak(){
	fmt.Println("hello, i am a Dog...")
}

//車間2 制作玩具狗的方法
func (this *DogFactory)Create() Toy {
	return &Dog{}
}

  

	cat := &factory.CatFactory{} //進入貓工廠
	cat.Create().Speak() //制作貓貓,說話試音

	dog := &factory.DogFactory{} //進入狗工廠
	dog.Create().Speak() //制作小狗,說話試音

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM