Golang設計模式 簡單工廠模式

2021-10-17 14:45:38 字數 1159 閱讀 8131

簡單工廠模式(****** factory pattern):又稱為靜態工廠方法(static factory method)模式,它屬於類建立型模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。

簡單工廠模式包含如下角色:

factory:工廠角色

工廠角色負責實現建立所有例項的內部邏輯

product:抽象產品角色

抽象產品角色是所建立的所有物件的父類,負責描述所有例項所共有的公共介面

concreteproduct:具體產品角色

具體產品角色是建立目標,所有建立的物件都充當這個角色的某個具體類的例項。

工廠類負責建立的物件比較少:由於建立的物件較少,不會造成工廠方法中的業務邏輯太過複雜。

客戶端只知道傳入工廠類的引數,對於如何建立物件不關心:客戶端既不需要關心建立細節,甚至連類名都不需要記住,只需要知道型別所對應的引數。

package main

import

("fmt"

)type ilog inte***ce

type stdout struct

func

(s *stdout)

writelog

(msg string

)type file struct

func

(s *file)

writelog

(msg string

)type logtype int

const

( stdout logtype =

iota+1

file

)func

newilog

(t logtype)

(ilog,

error)}

func

main()

log.

writelog

("hello"

)}

設計模式 工廠模式(簡單工廠模式和方法工廠模式)

一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...

Golang設計模式 建立型 簡單工廠

李雷喜歡上了韓梅梅,他知道韓梅梅喜歡吃漢堡,於是就想買漢堡給她吃,但李雷不確定韓梅梅喜歡的是肯德基的漢堡還是麥當勞的漢堡,怎樣幫助他呢?最直觀和最簡單的實現就是if else if prefer kfc else if prefer mcdonalds 這個實現的問題是客戶端關注了產品 漢堡 建立的...

Golang設計模式 工廠模式

定義乙個用於建立物件的介面,讓子類界定例項化哪個類。工廠方法使乙個類的例項化延遲到子類。簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶的選擇動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。如果是翻譯,讓客戶端不管用哪個類的例項,只需把翻譯型別 int 1,2,3 給工廠...