原始模式和工厂模式

  • A+
所属分类:Web前端
摘要

通过 Object 构造函数或对象字面量都可以创建单个对象但这些方式有个明显的缺点:


原始模式和工厂模式

原始模式

通过 Object 构造函数或对象字面量都可以创建单个对象

var preson = new Object() preson.name = '小明' preson.age = 22 preson.sex = '男' preson.sleep = function(){     alert(this.name + '睡觉了') } 

但这些方式有个明显的缺点:

使用同一个接口创建很多对象,会产生大量重复的代码。

为了解决这个问题,人们开始使用工厂模式的一种变体

工厂模式

工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程。考虑到 ECMAScript 中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节。

function createpreson(name, age, sex) {     var obj = new Object()     obj.name = name     obj.age = age     obj.sex = sex     obj.sleep = function(){         alert(this.name + '睡觉了')     } }  var preson1 = createpreson('小明', 22, '男') var preson2 = createpreson('小红', 22, '女') 

函数 createpreson() 能够依据接收的参数来构建一个包含必要信息的 preson 对象。可以无数次调用这个函数,而它每次都会返回一个包含三个属性的对象。工厂模式虽然解决了创建多个相同属性的对象产生大量重复代码的问题,但是却没有解决对象识别的问题(即就怎样知道一个对象的类型)。虽然 JavaScript 的发展,构造函数模式出现了。