設計模式之工廠模式

2021-09-10 23:25:43 字數 1949 閱讀 3992

工廠模式:對相似的實體的一些型別和方法進行統一的封裝

。優點:減少多餘的冗餘**。

"hey, man!my name is junzou,  what's your name?"

"yadu"

工廠模式大體分為一下三種:

1、簡單工廠模式(靜態工廠模式)

2、工廠方法模式

3、抽象工廠模式

// 簡單的工廠模式

function person(name, idcard, ***)

person.prototype = ,

getidcard: function() ,

get***: function()

}var junzou = new person('junzou', '320***x0111', 'man')

var yadu = new person('yadu', '320***x0111', 'man')

console.log(junzou.getname())

console.log(yadu.getname())

抽象工廠

角色,僅負責給出具體工廠類必須實現的介面,而不接觸哪乙個產品類應當被例項化這種細節。

資料梳理細節化。

// 工廠方法模式

function human(***, name) else

}human.prototype =

},woman: function(name)

}}var junzou = new human('man', 'junzou') ""

var meng = new human('woman', 'meng') ""

「毒牙君,我只給你一本書,讓你記錄你的生活。你如果一點記錄的話,一切都是原狀。生活,就是這麼的不主動。」

var user = function(subtype, supertype) 

f.prototype = new user[supertype]()

subtype.prototype = new f()

subtype.constructor = subtype

} else

}user.coder = function()

user.coder.prototype =

}user.user = function()

user.user.prototype =

}// coder

var coderobj = function(age)

// user

var userobj = function(name, age)

/*** -------

* | du |

* | ya |

* -------

*/// coderobj 繼承 user['coder']

user(coderobj, 'coder')

// 覆蓋父類的方法

coderobj.prototype.getname = function()

// userobj 繼承 user['user']

user(userobj, 'user')

// 覆蓋父類的方法

userobj.prototype.getname = function()

var user1 = new userobj('duya')

var user2 = new userobj('ya du')

console.log(user1.getname()) // "duya"

console.log(user2.getname()) // "ya du"

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...