前端常用設計模式之工廠模式(一)
阿新 • • 發佈:2018-12-17
一:簡單工廠模式:
假設:飛機大戰.兩種飛機,一種smallPlane,一種bigPlane.建構函式分別是
function SmallPlane(die){ this.height = 100; this.width = 100; this.die = function(){console.log('die')} } function BigPlane(){ this.height = 200; this.width = 200; this.die = function(){console.log('die')} }
簡單工廠模式可以寫一個簡單的工廠模式,
function factoryPlane (fun){ var plane = null switch(fun){ case SmallPlane : plane = new SmallPlane();break; case BigPlane : plane = new BigPlane();break;}
plane.die = function(){console.log('die')};//可以吧單個的製造函式
return plane;
}
這種簡單的工廠模式可以實現對多有工廠事例的集中管理. ---當給他們都新增某個屬性時候,可以在工廠函式裡直接新增.
可以方便的擴充套件工廠裡的子類 ---但違反開閉原則;
工廠模式不是製造具體的事例物件的,而是製造建構函式的. 當需要有好多建構函式,且建構函式之間有共同點,可以用工廠模式來管理這些有聯絡的建構函式.