asp.net 網站訪問量商品推廣與營銷的方式
適用場景
- 一個系統(tǒng)要獨立于它的產品的創(chuàng)建、組合和表示時。
- 一個系統(tǒng)要由多個產品系列中的一個來配置時。
- 當你要強調一系列相關的產品對象的設計以便進行聯(lián)合使用時。
- 當你提供一個產品類庫,而只想顯示它們的接口而不是實現(xiàn)時
架構演示
首先client這個東西可以接觸到三個接口, 分別是
- 全局的 abstract factory, 用來構造對應的子 abstract factory
- 然后我們可以通過子 abstract factory 去構造相應的 abstract product
- 局部的 abstract product, 用來從上面的 abstract factory 獲取對應的屬性
好處就是:
- abstract factory 約束了創(chuàng)建接口的行為
- abstract product 約束了對應產品的行為
代碼演示
首先創(chuàng)建一個工廠接口
type ISportFactory interface {MakeShoe() IShoeMakeShirt() IShirt
}
對應的一個產品, 我們可以通過抽象工廠搞出來的兩個東西
type IShoe interface {setLogo(logo string)setSize(size int)getLogo() stringGetSize() int
}type IShirt interface {setLogo(logo string)setSize(size int)getLogo() stringGetSize() int
}
我們首先看一下對應的工廠函數(shù):
func GetSportsFactory(brand string) ISportFactory {if brand == "adidas" {return &Adidas{}}if brand == "nike" {return &Nike{}}return nil
}
然后我們看實例的具體實現(xiàn)也就是makeshoe
func (adids *Adidas) MakeShoe() IShoe {return &AdidsShoe{Shoe: Shoe{logo: "adidas",size: 10,},}
}
同樣的我們可以到
//實現(xiàn)了ishoe接口
type Shoe struct {logo stringsize int
}