《大話設計模式》抽象工廠模式

2021-10-25 20:07:09 字數 1904 閱讀 8427

抽象工廠模式(abstract factory),提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

優點

缺點

// 產品1"父類"

type cat struct

// 產品1"子類"需實現介面

type catinte***ce inte***ce

// 產品1的具體"子類1"

type smallcat struct

func

(c *smallcat)

catshout()

// 產品1的具體"子類2"

type tiger struct

func

(t *tiger)

catshout()

// 產品2的"父類"

type dog struct

// 產品2系列的"子類"需實現的介面

type doginte***ce inte***ce

// 產品2的具體"子類1"

type smalldog struct

func

(d *smalldog)

dogshout()

// 產品2的具體"子類2"

type wolf struct

func

(w *wolf)

dogshout()

// 抽象工廠"父類"

type animalsfactory struct

// 抽象工廠"子類"待實現的介面

type animalfactoryinte***ce inte***ce

// 抽象工廠"子類1"

type biganimalfactory struct

func

(s *biganimalfactory)

createcat

() catinte***ce

}func

(s *biganimalfactory)

createdog

() doginte***ce

}// 抽象工廠"子類2"

type smallanimalfactory struct

func

(s *smallanimalfactory)

createcat

() catinte***ce

}func

(s *smallanimalfactory)

createdog

() doginte***ce

}func

main()

cat = factory.

createcat()

cat.

catshout()

dog = factory.

createdog()

dog.

dogshout()

// 抽象工廠2建立系列2

factory =

&biganimalfactory

cat = factory.

createcat()

cat.

catshout()

dog = factory.

createdog()

dog.

dogshout()

}// 輸出

// i'm small cat.

// i'm small dog.

// i'm tiger.

// i'm wolf.

大話設計模式 抽象工廠模式

1 思想 提供乙個建立一系列相關或互相依賴物件的介面 抽象工廠類 而無需指定它們具體的類。抽象工廠模式和工廠模式一樣都是屬於建立型模式,也就是說它的目的也是用來建立物件的,為什麼有了工廠模式之後還要有抽象工廠模式?因為更方便 更合理 更加低耦合,我舉個例子來說明一下。假設目前你的程式裡面有兩個物件,...

大話設計模式 10抽象工廠模式

一 最基本的資料庫訪問方式 public class oracleuserdaoimpl public user queryuser int id public class sqlserveruserdaoimpl public user queryuser int id public class ...

大話設計模式 抽象工廠模式 簡單工廠模式結合

user表 class user public function get key else department表 class department public function get key else user表操作介面 inte ce iuser sqlserver class sqlser...