js设计模式抽象工厂模式
抽象工厂模式(Abstract Factory) 通过类的抽象使得业务适用于一个产品类簇的创建,而不负责创建某一类产品的实例。
JS中是没有直接的抽象类的,因此我们需要在类的方法中抛出错误来模拟抽象类,如果继承的子类中没有覆写该方法而调用,就会抛出错误。
//汽车抽象类
var Car = function(){};
Car.prototype = {getPrice: 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){this.price = price;
}
//抽象工厂实现对Car抽象类的继承
AbstractFactory(BMW,'Car');
BMW.prototype.getPrice = function(){return this.price;
}
var bmw = new BMW(100000);
console.log(bmw.getPrice());
欢迎大神多多指点。qq:274501366
js设计模式抽象工厂模式相关推荐
- 系统架构技能之设计模式-抽象工厂模式
一.上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式.并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下: 简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建 ...
- 常见设计模式—抽象工厂模式
设计模式-抽象工厂模式 1.什么是抽象工厂模式 抽象工厂模式是围绕一个超级工厂创建其它工厂,是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品. 2.角色分 ...
- 【JAVA进阶系列】JAVA 设计模式 -- 抽象工厂模式(Abstract Factory)
[JAVA进阶系列]JAVA 设计模式 -- 抽象工厂模式(Abstract Factory) [1.1]抽象工厂模式简介 抽象工厂者模式的类结构图 AbstractProduct(抽象产品),Abs ...
- java设计模式---抽象工厂模式
工厂模式在项目中是常常用到的,有人说只有大项目才会用到,小项目是体会不出来.其实使用设计模式与项目的大小没有实质性的联系.设计模式是经验的总结而不是衡量项目大小的标准. 以开发项目的DAO层为例,在项 ...
- C++设计模式--抽象工厂模式
前言 前面有两篇文章分别介绍了简单工厂模式和工厂方法模式,这两种模式都比较常见,今天介绍工厂模式的最后一种,抽象工厂模式. 抽象工厂模式(Abstract Factory Pattern)是所有形态的 ...
- python工厂模式 理解_浅谈Python设计模式 - 抽象工厂模式
声明:本系列文章主要参考<精通Python设计模式>一书,并且参考一些资料,结合自己的一些看法来总结而来. 在上一篇我们对工厂模式中的普通工厂模式有了一定的了解,其实抽象工作就是 表示针对 ...
- 05设计模式——抽象工厂模式
前言:以下总结来自龙哥---左潇龙博客. 总结的很到位,附上博客链接:http://www.cnblogs.com/zuoxiaolong/p/pattern6.html 抽象工厂模式算是工厂相关模式 ...
- [设计模式] ------ 抽象工厂模式
抽象工厂模式 抽象工厂模式,就是对工厂方法模式加以改进而已,其实就是用简单工厂模式的套路创建各个工厂,后面和工厂模式就一模一样了. 其实就是相当于将创建哪个工厂的权利再次放给调用端. 调用端在调用的时 ...
- C++设计模式-抽象工厂模式
目录 基本概念 代码与实例 基本概念 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,从而无需指定他们具体的类. 抽象工厂的好处: 1. 易于交换产品系列 ...
最新文章
- socket心跳机制图片_WebSocket心跳检测和重连机制
- MySQL慢查询日志分析(一)
- Swift 优雅的打印Log
- 文件查询之三:文件和目录的批量操作
- 杭电4506小明系列故事——师兄帮帮忙
- micropython 驱动 移植_MicroPython v1.12 版本更新
- 收集常用的PHP正则表达式及使用
- python获取随机大小写字母_python获取随机大小写字母
- 字符串 hash 唯一数字_物联网安全:基于Hash的RFID安全认证协议
- 利用Linux socket 模拟大华IPC发送广播包,让大华客户端搜索到一个模拟的ip摄像头
- 今日分享|每日领红包最高618,全是无门槛使用!
- RSA算法详解与练习
- 面试- 阿里-. 大数据题目- 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?...
- 数据仓库概念以及选型
- 谁可以参与初创股权分配?
- ZigBee数据机房能耗监控系统
- MiniAlphaGo黑白棋 蒙特卡洛搜索
- HCIP第十二天VLAN实验
- 聊聊我的英语学习经验
- Xilinx IP核AXI Memory Mapped to PCI Express使用