1. 程式人生 > >【JS設計模式】溫習簡單工廠模式、工廠方法模式、抽象工廠模式概念

【JS設計模式】溫習簡單工廠模式、工廠方法模式、抽象工廠模式概念

his mac script 開頭 str new 每一個 簡單工廠 pattern

註:空心箭頭表示的是種繼承關系,工廠類和產品類之間是一種依賴關系。是用箭頭加虛線表示的,以下的模型圖是用的實線是不正確(時間不夠用,在這裏我偷懶了。這個習慣不好,呵呵)
簡單工廠模式(Simple Factory Pattern):使用一個類(通常為單體)來創建實例;簡單工廠模式也叫靜態工廠方法模式(Static FactoryMethod Pattern).技術分享
接口的定義通常是以I開頭標識符,在JS中未定義接口或抽象類的語法;
var MacBikeFactory = {
  createBike : function() {
    return new MacBike();
  }
}
function IMacBike() {}
function MacBike() {}
	MacBike.prototype = {
  	constructor : MacBike,
  	getBike: function() {
    	console.log("創建一臺Mac車");
  }
}
var macFn = MacBikeFactory.createBike();
macFn.getBike();

工廠方法模式使用子類來決定一個成員變量應該是哪個詳細的類的實例技術分享

function IMacBikeFactory() {}
function MacBikeFactory()  {
  this.createBike() {
    return new MacBike();
  }
}
function IMacBike() {}
function MacBike() {}
	MacBike.prototype = {
  	constructor : MacBike,
  	getBike: function() {
    	console.log("創建一臺Mac車");
  }
}

var macBikeFactory = new MacBikeFactory();
var macBike = IMacBikeFactory.createBike();
macBike.getBike(); 

在簡單工廠模式中是通過一個單體來實例化一個詳細產品,而在工廠方法模式中是把這個實例化的過程交給了抽象工廠的子類來創建的
抽象工廠模式多個抽象產品類,每一個抽象產品類能夠派生出多個詳細產品類。
一個抽象工廠類,能夠派生出多個詳細工廠類。
每一個詳細工廠類能夠創建多個詳細產品類的實例。



技術分享
有二個抽象產品IBike和ICar類,它們分別派生二個詳細產品有一個IMall抽象工廠類,它派生出二個詳細工廠AMall和BMall類每一個詳細工廠類又能夠創建多個詳細產品實例 AMall賣場銷售BaoMa品牌的汽車和FengHuang品牌的自行車;BMall賣場銷售FaLali品牌的汽車和JieAnTe品牌的自行車


【JS設計模式】溫習簡單工廠模式、工廠方法模式、抽象工廠模式概念