企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 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 //基类函数 //基类函数