1. 程式人生 > >javaScript設計模式---(工廠模式學習)

javaScript設計模式---(工廠模式學習)

新的 創建對象 cto ret 我們 接口 ceo .proto run

工廠模式(Factory)提供一個公用的接口來創建對象。

如有一個UI庫,我們要創建某個UI組件的類型,不需要直接使用new 運算符或者通過另一個創建型構造函數創建這個組件,而是要求Factory對象創建一個新的組件。我們通知Factory需要什麽樣的對象(如按鈕、面板),它會進行實例化,然後將它返回給我們。

function Car (name, color) {
    this.name = name;
    this.color = color;
}
function Trunk (name, color) {
    this.name = name;
    this.color = color;
}
function vehicleFactory () { } vehicleFactory.prototype.vehicleClass = Car; // 添加默認類型 vehicleFactory.prototype.createVehicle = function (name, color) { if (name === ‘car‘) { this.vehicleClass = Car; } else { this.vehicleClass = Trunk; } return new vehicleClass(name, color); } let factory
= new vehicleFactory() let car = factory.createVehicle(‘car‘, ‘red‘) console.log(car instanceof Car) // true let trunk = factory.createVehicle(‘trunk‘, ‘blank‘) console.log(trunk instanceof Trunk) // true

javaScript設計模式---(工廠模式學習)