ecmascript工厂模式-JavaScript设计模式鞋工厂模式和构造函数模式

2023-08-26 0 3,077 百度已收录

JavaScript设计模式工厂模式构造函数模式

更新时间:2015年2月11日 09:17:03 贡献者:junjie

本文主要介绍JavaScript设计模式的鞋工厂模式和构造函数模式。 本文还解释了设计模式的类别,例如创建型设计模式、结构型设计模式和行为型设计模式。 有需要的同学可以参考以下

哪些是模式

前段时间准备期末考试,真是又累又伤身体。 实在是没时间更新文章了。 明天我会和大家聊聊javascript中的设计模式。

首先ecmascript工厂模式,我们需要知道的是:模式是可重用的解决方案ecmascript工厂模式,反模式是解决问题的糟糕方案。

js 反模式的常见示例

1. 将字符串传递给setTimeout和setInterval,而不是函数,这会触发eval()的内部使用。

2.在全局上下文中定义大量变量污染全局命名空间

3.改变Object类的原型

4.使用js内联,嵌入在HTML文件中的js代码很难包含在外部单元测试工具中。

5.滥用document.write。 如果在页面加载后执行docume.write,它将重绘我们所在的页面。 如果可以使用 document.creatElement 代替,请尽量不要使用 doume.write。

设计模式的类别

创意设计模式

创建型设计模式侧重于处理对象创建的机制,以适合给定情况的方式创建对象。 属于此类别的属性包括:

Constructor构造器、Factory鞋工厂、抽象表示、Prototype原型、Singleton单例和Builder生成器

结构设计模式

结构模式与对象组合有关,通常可用于寻找构建不同对象之间关系的简单方法。

属于此类别的模式包括:

装饰器、外观、享元、适配器和代理

行为设计模式

行为模式侧重于改进或简化系统中不同对象之间的通信。

行为模式包括:

Iterator迭代器、Mediator中介、Observer观察者和Visitor访问者

工厂(鞋厂)模式

为了解决多个相似对象声明的问题,我们可以使用一种叫做鞋工厂模式的方法,它就是为了解决实例化对象大量重复的问题。

复制代码代码如下:

鞋厂型号分类

鞋厂模式分为简单鞋厂、抽象鞋厂和智能鞋厂。 鞋工厂模式没有明确要求使用构造函数。

简单鞋工厂模式:使用一个类(通常是单体)来创建将来的实例。

复杂鞋工厂模式:使用泛型来确定成员变量应该是哪个具体类实例。

鞋厂模式的好处

主要用途是通过工程方法而不是new关键字来消除对象之间的耦合。 将所有实例化代码集中在一处,以避免代码重复。

鞋厂模式的缺点

对于大多数类来说,最好使用new关键字和构造函数,这样可以使代码更简单,更容易阅读。 不用查鞋厂方法就知道。

鞋工厂模式解决了重复实例化的问题,但是还有一个问题,那就是标识问题,因为无法明确它们是哪些对象的实例。

复制代码代码如下:

Alert(typeoftest1);//对象

Alert(test1instanceofObject);//true

何时使用鞋厂模式?

工厂模式主要应用于以下场景:

1.当对象或组件涉及高度复杂性时

2、当需要根据不同的环境方便地生成不同的对象实例时

3. 当处理许多共享相同属性的大型对象或组件时

构造函数(constructor)模式

ECMAScript 中可以使用构造函数(构造方法)来创建特定的对象。 这种模式正好可以解决上述鞋厂模式难以识别对象实例的问题。

复制代码代码如下:

使用构造函数的方式不仅解决了重复实例化的问题,还解决了对象识别的问题。 该模式与鞋厂模式的区别在于:

1、构造函数方法不显示创建对象(newObject());

2、直接为该对象赋予属性和技术参数;

3.无租金刑罚。

构造函数的工作方式有一些规范:

1、函数名和实例化的构造函数名相同且小写,(PS:不是强制的,但这样写有助于区分构造函数和普通函数);

2、通过构造函数创建对象,必须使用new操作符。

既然可以通过构造函数创建对象,那么这个对象从哪里来,newObject()在哪里执行呢? 执行过程如下:

1.当使用构造函数时,而是new构造函数(),则后台执行newObject();

2、将构造函数的作用域分配给new对象(即newObject()创建的对象),函数体中的this代表newObject()中的对象。

3、执行构造函数中的代码;

4.返回一个新对象(后台直接返回)。

具有原型的构造函数

js中有一个属性叫prototype。 调用js构造函数创建对象后,新对象将具有构造函数原型的所有属性。 通过这些方法,可以创建多个 Car 对象并访问相同的原型。

复制代码代码如下:

现在,run() 的单个实例可以在所有 Car 对象之间共享。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 ecmascript ecmascript工厂模式-JavaScript设计模式鞋工厂模式和构造函数模式 https://www.wkzy.net/game/153840.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务