標籤:tracking _id 變數 cto width 一個 簡單工廠 java src
註:空心箭頭表示的是種繼承關係,工廠類和產品類之間是一種依賴關係。是用箭頭加虛線表示的,以下的模型圖是用的實線是不正確(時間不夠用,在這裡我偷懶了。這個習慣不好,呵呵)
簡單原廠模式(Simple Factory Pattern):使用一個類(通常為單體)來建立執行個體;簡單原廠模式也叫靜態Factory 方法模式(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();
Factory 方法模式使用子類來決定一個成員變數應該是哪個詳細的類的執行個體
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();
在簡單原廠模式中是通過一個單體來執行個體化一個詳細產品,而在Factory 方法模式中是把這個執行個體化的過程交給了抽象工廠的子類來建立的
抽象原廠模式多個抽象產品類,每一個抽象產品類能夠派生出多個詳細產品類。
一個抽象工廠類,能夠派生出多個詳細工廠類。
每一個詳細工廠類能夠建立多個詳細產品類的執行個體。
有二個抽象產品IBike和ICar類,它們分別派生二個詳細產品有一個IMall抽象工廠類,它派生出二個詳細工廠AMall和BMall類每一個詳細工廠類又能夠建立多個詳細產品執行個體 AMall賣場銷售BaoMa品牌的汽車和FengHuang品牌的單車;BMall賣場銷售FaLali品牌的汽車和JieAnTe品牌的單車
【JS設計模式】溫習簡單原廠模式、Factory 方法模式、抽象原廠模式概念