日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式--工厂方法(Factory Method)模式

發布時間:2025/3/21 asp.net 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式--工厂方法(Factory Method)模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

模式定義

定義一個用于創建對象的接口,讓子類決定實例化哪一個類,使得一個類的實例化延遲到子類

類圖

應用場景

1.當你不知道該使用對象的確切類型的時候;

2.當你希望為庫或框架提供擴展其內部組件的方法時。

主要優點

1.將具體產品和創建者解耦;

2.符合單一職責原則;

3.符合開閉原則。

要點總結

  • Factory Method模式用于隔離類對象的使用者和具體類型之間的耦合關系。面對一個經常變化的具體類型,緊耦合關系(new)會導致軟件的脆弱
  • Factory Method模式通過面向對象的手法,將所要創建的具體對象工作延遲到子類,從而實現一種擴展(而非更改)的策略,較好地解決了這種緊耦合關系
  • Factory Method模式解放了“單個對象”的需求變化,缺點在于要求創建方法、參數相同

Go語言實現

工程目錄

OperatorFactory.go

package Factory//實際運行類的接口 type Operator interface {SetLeft(int)SetRight(int)Result() int }//工廠接口 type OperatorFactory interface {Create() Operator }

OperatorData.go

package Factory//數據 type OperatorData struct {left, right int }//賦值 func (op *OperatorData) SetLeft(left int) {op.left = left }func (op *OperatorData) SetRight(right int) {op.right = right }

PlusOpertaorFactory.go

package Factory//操作的抽象 type PlusOpertaorFactory struct {}//操作類中包含操作數 type PlusOpertaor struct {*OperatorData }//實際運行方法 func(o PlusOpertaor) Result() int {return o.right + o.left } func(PlusOpertaorFactory) Create() Operator {return &PlusOpertaor{&OperatorData{}} }

SubOpertaorFactory.go

package Factory//操作的抽象 type SubOpertaorFactory struct {}//操作類中包含操作數 type SubOpertaor struct {*OperatorData }//實際運行方法 func(o SubOpertaor) Result() int {return o.left - o.right } func(SubOpertaorFactory) Create() Operator {return &SubOpertaor{&OperatorData{}} }

factory_test.go

package Factoryimport ("fmt""testing" )func TestOpertaorFactory(t *testing.T) {var fac OperatorFactoryfac = PlusOpertaorFactory{}op := fac.Create()op.SetLeft(20)op.SetRight(10)fmt.Println(op.Result())fac = SubOpertaorFactory{}op = fac.Create()op.SetLeft(30)op.SetRight(20)fmt.Println(op.Result()) }

總結

以上是生活随笔為你收集整理的设计模式--工厂方法(Factory Method)模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。