## 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
//基类函数
//基类函数
- 视觉规范
- 色彩
- 文字
- 偏移
- 图标
- 列表组件
- 表单组件
- 详情组件
- 其他组件
- 研发规范
- 编码规范
- 函数式编程
- 纯函数
- 柯里化
- 函数组合
- 函子
- 面向对象编程
- 设计原则
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 开闭原则
- 迪米特原则
- 组合复用原则
- 设计模式
- 创建型模式
- 工厂模式
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
- 建造者模式
- 原型模式
- 结构型模式
- 适配器模式
- 桥接模式
- 过滤器模式
- 组合模式
- 装饰器模式
- 外观模式
- 享元模式
- 代理模式
- 行为型模式
- 责任链模式
- 命令模式
- 解释器模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板模式
- 访问者模式
- 组件设计规范
- 组件文档编写规范
- 版本管理规范