工廠模式簡介(一)

工廠模式是23中設計模式中的一種,它屬於建立型設計模式,可細分爲三種:分別是簡單工廠模式,工廠方法模式,抽象工廠模式。
1、簡單工廠模式
簡單工廠模式屬於類的建立型模式,又叫靜態工廠方法模式。經過專門定義一個工廠類來負責建立其餘類的實例,被建立的實例一般都具備共同的父類。
舉例說明:
如今有個工廠,能夠生產自行車和摩托車,經過外界的訂單來生產產品。
class FACTORY {
  Product(type) {
    var production;
    switch(type) {
      case 'bike' :
      production = new Bike();
      break;
      case 'moto' :
      production = new Moto();
      break;
    }
    return production
  }
}
class Bike {
  product() {
    console.log('生產自行車');
  }
}
class Moto {
  product() {
    console.log('生產摩托車車');
  }
}
let order = new ORDER();
console.log('order',order.Product('bike).product());
在上邊代碼中,工廠類做爲最核心存在,他包含了處理業務的邏輯,可以根據外界的條件去建立具體的類,也就是說可以根據訂單內容去生產相關產品,無需關注自行車,摩托車是怎麼生產的。可是簡單雖然簡單,當業務
類型多的時候,會不斷的向工廠類添加功能,把全部功能都集中到一個類上,足夠多的時候這給類難以維護而且臃腫,這違反了開閉原則。
2、工廠方法模式設計模式

工廠方法模式是對簡單工廠模式的稍微的改進,它定義一個用於建立對象的接口,讓子類決定實例化哪個類。針對上述問題,假如每次添加一種新的產品,都要去更改工廠內部,工廠方法模式就是將這個大廠拆分出各個小廠,每次添加新的產品讓小廠去生產,大廠負責指揮就行了。設計

class FACTORY {對象

  construct(){  繼承

  }接口

}產品

class SONFACTORY extends FACTORY {it

  Product(type) {
    var production;
    switch(type) {
      case 'bike' : 
      production = new Bike();
      break;
      case 'moto' :
      production = new Moto();
      break;
    }
    return production
  }io

}console

class Bike
  product() {
    console.log('生產自行車');
  }
}
class Moto{
  product() {
    console.log('生產摩托車車');
  }
}class

與簡單工廠模式相比,製造產品的工廠類再也不 只有一個,而是每種具體產品類都對應一個生產它的具體工廠類。而這些具體工廠類的共同特徵再被提取出來造成一個抽象產品類,這些具體產品類都繼承自這個抽象產品類。每當有新的需求,增長一種繼承在抽象工廠的具體工廠類,它符合開閉原則。

相關文章
相關標籤/搜索