javascript设计模式之构造器模式

简介

ECMAScript 中可以采用构造函数(构造方法)可用来创建特定的对象。 该模式正好可以解决以上的工厂模式无法识别对象实例的问题。

<script type="text/javascript">
    function Car(model,year,miles){//构造函数模式
        this.model = model;
        this.year = year;
        this.miles = miles;
        this.run = function () {
            return this.model + " has done " + this.miles + "miles";
        }
    }
    var Benz = new Car('Benz',2014,20000);
    var BMW = new Car("BMW",2013,12000);
    alert(Benz instanceof Car); //很清晰的识别他从属于 Car,true

    console.log(Benz.run());
    console.log(BMW.run());
</script>

javascript设计模式之工厂模式

简介

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

<script type="text/javascript">
    function createObject(name,age,profession){//集中实例化的函数
        var obj = new Object();
        obj.name = name;
        obj.age = age;
        obj.profession = profession;
        obj.move = function () {
            return this.name + ' at ' + this.age + ' engaged in ' + this.profession;
        };
        return obj;
    }
    var test1 = createObject('trigkit4',22,'programmer');//第一个实例
    var test2 = createObject('mike',25,'engineer');//第二个实例
    alert(test1.move());
    alert(test2.move());
</script>

javascript设计模式之单例模式

基本结构

简单的单体结构实际上就是一个对象字面量:

1
2
3
4
5
6
7
8
9
10
11
var Singleton = {
attribute1: true,
attribute2: 1,

method1: function() {
...
},
method2: function() {
...
}
}

单体结构应该是一个只能被实例化一次,并且可以通过一个访问点访问的类。所谓访问点,可以理解为一个变量,这个变量在全局范围内可以访问到,并且只有一个。