1. 程式人生 > >前端常用設計模式之工廠模式(一)

前端常用設計模式之工廠模式(一)

 

一:簡單工廠模式:

假設:飛機大戰.兩種飛機,一種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;

}
這種簡單的工廠模式可以實現對多有工廠事例的集中管理. ---當給他們都新增某個屬性時候,可以在工廠函式裡直接新增.
可以方便的擴充套件工廠裡的子類 ---但違反開閉原則;

工廠模式不是製造具體的事例物件的,而是製造建構函式的.  當需要有好多建構函式,且建構函式之間有共同點,可以用工廠模式來管理這些有聯絡的建構函式.