JS--单例\工厂 设计模式

单例设计模式(singleton pattern)

最基础的单例模式模型:

var obj = {
      a:12,
      b:13,
      ...
  };

在单例设计模型中,OBJ不仅仅是对象名,它被称为“命名空间[NameSpace]”,把描述事务的属性存放到命名空间中,多个命名空间是独立分开的,互不冲突

var p1={
    name:"张三",
    age:33
};
var p2={
    name:"李四",
    age:44
};

单例每一个命名空间都是Object这个内置基类的实例,而实例之间是相互独立互不干扰的,所以我们称它为“单例:单独的实例”.

高级单例模式

实现方式 在给命名空间赋值时,不是直接赋值一个对象,而是先套个自执行函数,形成一个私有作用域,在这个私有作用域里创建一个堆内存,做为返回值,把堆内存地址赋值给命名空间.(私有作用域里的某些内容被占用,成为不销毁的栈内存)

好处:我们可以在这个私有作用域中创造很多内容(变量或函数等等),哪些需要供外部调取使用的,我们暴露到返回的对象中(模块化实现的一种思想)

var nameSpace = (function () {
    var a = "xxx";
    function test1() {
        //...
    }
    function test2() {

    }
    return {
        test1: test1,
        test2: test2
    }
})();

工厂模式

实现方式 把实现相同功能的代码进行“封装”,以此来实现“批量生产”(后期想要实现这个功能,我们只需要执行函数即可)
好处低耦合高内聚:减少页面中的冗余代码,提高代码的重复使用率

function create(name, age) {
    var o = {};
    o.name = name;
    o.age = age;
    return obj;
}

var p1 = create('xxx', 11);
var p2 = create('xxx', 22);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值