Go 30 Go 工廠模式

2022-07-02 03:39:09 字數 750 閱讀 2031

golang的結構體沒有建構函式,通常可以使用工廠模式來解決這個問題;

需求:當我們在model中定義結構體時,當結構體名稱首字母大寫student 那麼可以跨包使用,但是要是小寫student,怎麼辦呢?這就需要使用工廠模式來解決:

引包要從src的目錄下開始,src不用寫;

示例:type student struct 

// 因為student結構體首字母是小寫,因此是只能在model使用

// 我們通過工廠模式來解決 

// 定義乙個方法 

func newstudent(name string, score float64) *student  

}// 當 student 這個結構體首字母小寫,我們可以使用工廠模式來實現建立例項    

var stu = newstudent("jack~", 99.5)   // &

如果結構體的某個字段首字母小寫呢?

示例:// 如果結構體的字段 首字母也小寫的話,也無法跨包使用

// 我們可以提供乙個方法 

func (s *student) getscore() float64 

// fmt.println("name=", (*stu).name, "score=", (*stu).getscore)  // 正規的寫法     

fmt.println("name=", stu.name, "score=", stu.getscore())  // name= jack~ score= 99.5

go工廠模式

go的結構體沒有建構函式,通常可以使用工廠模式來解決這個問題。乙個結構體的宣告是這樣的 packageexer typeexersstruct 因為 exers 的首字母 e 是大寫的,如果我們想在其他包建立 exers 的例項 比如 main 包 引入exer包後,就可以直接建立 exers 的例...

寒江雪 Go實現工廠模式

簡單工廠的實現思想,即建立乙個工廠,將產品的實現邏輯集中在這個工廠中。factory type foodfactory struct func ff foodfactory createfood name string food return s type food inte ce type mea...

Go實現設計模式 工廠模式

抽象工廠模式 工廠模式,屬於設計模式三大類之一的建立模式裡。其核心思想是提供乙個建立物件的超類,允許通過該介面指定建立子類物件的型別。從go的角度應用的說,工廠模式就是提供乙個超類,這個超類有乙個建立介面,我們可以通過這個介面獲取不同的物件,這些物件實現了同一系列的介面,所以他們可以用同乙個inte...