## 3 抽象工廠
簡介
抽象工廠其實是實現子類繼承父類的方法,只是一個方法。抽象工廠模式一般用在多人協作的超大型項目中,并且嚴格的要求項目以面向對象的思想進行完成。
實例
// 抽象工廠方法
var abstractFactory = function(subType, superType) {
// 判斷抽象工廠中是否有該抽象類
if(typeof abstractFactory[superType] === 'function') {
// 緩存類
function F() {};
// 繼承父類屬性和方法
F.prototype = new abstractFactory[superType]();
// 將子類constructor 指向子類
subType.constructor = subType;
// 子類原型繼承'父類'
subType.prototype = new F();
} else {
// 不存在該抽象類拋出錯誤
throw new Error('未創建該抽象類');
}
};
// 小汽車抽象類
abstractFactory.Car = function() {
this.type = 'car';
};
abstractFactory.Car.prototype = {
getPrice1: function() {
return '基類函數';
},
getSpeed1: function() {
return '基類函數';
}
};
// 創建產品子類繼承相應的產品簇抽象類
// 創建MyCar子類
var MyCar = function(price, speed) {
this.price = price;
this.speed = speed;
}
//抽象工廠實現對Car抽象類的繼承
abstractFactory(MyCar, 'Car');
MyCar.prototype.getPrice = function() {
return this.price
};
MyCar.prototype.getSpeed = function() {
return this.speed
};
var bmw = new MyCar(11000, 200);
var speed = bmw.getSpeed();
var price = bmw.getPrice();
var speed1 = bmw.getSpeed1();
var price1 = bmw.getPrice1();
console.log(speed);
console.log(price);
console.log(speed1);
console.log(price1);
//200
//11000
//基類函數
//基類函數
- 視覺規范
- 色彩
- 文字
- 偏移
- 圖標
- 列表組件
- 表單組件
- 詳情組件
- 其他組件
- 研發規范
- 編碼規范
- 函數式編程
- 純函數
- 柯里化
- 函數組合
- 函子
- 面向對象編程
- 設計原則
- 單一職責原則
- 里氏替換原則
- 依賴倒置原則
- 接口隔離原則
- 開閉原則
- 迪米特原則
- 組合復用原則
- 設計模式
- 創建型模式
- 工廠模式
- 簡單工廠
- 工廠方法
- 抽象工廠
- 單例模式
- 建造者模式
- 原型模式
- 結構型模式
- 適配器模式
- 橋接模式
- 過濾器模式
- 組合模式
- 裝飾器模式
- 外觀模式
- 享元模式
- 代理模式
- 行為型模式
- 責任鏈模式
- 命令模式
- 解釋器模式
- 迭代器模式
- 中介者模式
- 備忘錄模式
- 觀察者模式
- 狀態模式
- 策略模式
- 模板模式
- 訪問者模式
- 組件設計規范
- 組件文檔編寫規范
- 版本管理規范