javascript设计模式--抽象工厂模式
来源:互联网 发布:php 查找字符串位置 编辑:程序博客网 时间:2024/05/22 10:22
抽象工厂模式(abstract Fctory):通过对类的工厂抽象使其业务用于对产品类鏃的创建,而不负责创建某一类产品的实例.
//汽车抽象类,当使用其实例对象的方法时会抛出错误 var Car = function(){}; Car.protorype = { getPrice : function(){ return new Error('抽象方法不能调用!'); }, getSpeed : function(){ return new Error('抽象方法不能调用!'); } }
我们不能使用它来创建一个真实的对象,一般用来作为父类来创建一些子类
//抽象工厂方法 var AbstractFactory = function(subType,superType){ //判断抽象工厂种是否有这个抽象类\ if(typeof(AbstractFactory[superType])=='function'){ //缓存类 function F(){}; //继承父类属性和方法 F.protorype = new AbstractFactory[superType](); //将子类constructor指向子类 subType.constructor = subType; //子类原型继承"父类" subType.prototype = new F(); }else{ //不存在该抽象类抛出错误 throw new Error('未创建该抽象类'); } } //小汽车抽象类 AbstractFactory.Car = function(){ this.type = 'Car'; } AbstractFactory.Car.prototype = { getPrice : function(){ return new Error('抽象方法不能调用!'); } }
抽象工厂其实是一个实现子类继承父类的方法,在这个方法种我我们需要传入子类以及要继承父类的名称.
过渡类的原型继承,不是继承父类的原型,而是通过new 复制一个父类的实例,过渡类不仅仅继承了父类的原型方法,还继承了父类的对象属性.
使用方法
//宝马汽车类 var BMW = function(price,speed){ this.price = price; this.speed = speed; } //抽象工厂实现对Car抽象类的继承 AbstractFactory(BMW,'Car'); BMW.prototype.getPrice = function(){ return this.price; }
0 0
- javascript设计模式--抽象工厂模式
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- 设计模式--抽象工厂
- 【设计模式】抽象工厂
- 设计模式---抽象工厂
- 【设计模式-抽象工厂】
- 设计模式-抽象工厂
- 关于GPL329A添加摄像头驱动需要更改的配置脚本
- C++第四次作业
- c++第三次实验
- OC中的单例模式
- C++第四次作业
- javascript设计模式--抽象工厂模式
- Vector、ArrayList、List使用深入剖析
- Unity3D 性能优化
- c++第四次实验-1
- Hashtable 中Entry[] Index计算
- 如何用sitemesh---------- 装饰模式
- innerHTML outerHTML innerText textContent的区别
- Unity3D 图形优化
- SDAU 课程练习3 1003