标签: singleton

Javascript:最好的Singleton模式

可能重复:
在JavaScript中实现单例的最简单/最简洁的方法?

我将这种模式用于单身人士,在单例中,单身人士是PlanetEarth:

var NAMESPACE = function () {

    var privateFunction1 = function () {
        privateFunction2();
    };

    var privateFunction2 = function () {
        alert('I\'m private!');
    };

    var Constructors = {};

    Constructors.PlanetEarth = function () {
        privateFunction1();
        privateFunction2();
    };

    Constructors.PlanetEarth.prototype = {
        someMethod: function () {
            if (console && console.log) {
                console.log('some method');             
            }
        }
    };

    Constructors.Person = function (name, address) {
        this.name = name;
        this.address = address;
    };

    Constructors.Person.prototype = {
        walk: function () {
            alert('STOMP!');
        }
    };

    return { …
Run Code Online (Sandbox Code Playgroud)

javascript singleton design-patterns

94
推荐指数
3
解决办法
13万
查看次数

Python和Singleton模式

可能重复:
在Python中定义单例是否有简单,优雅的方法?

在Python中实现单例模式的最佳方法是什么?似乎不可能像通常使用Singleton模式那样声明构造函数是私有的还是受保护的......

python singleton design-patterns

92
推荐指数
0
解决办法
12万
查看次数

GOF Singleton模式有没有可行的替代方案?

面对现实吧.Singleton模式是高度争议与成群程序员话题围栏边.有些人认为,辛格尔顿只不过是一个美化的全球变量,而其他人则以模式发誓并不断使用它.但是,我不希望单身人士的争议成为我问题的核心. 每个人都可以进行一场拔河比赛并与之抗争,看看谁能为我所关心的所有人赢得胜利.我想说的是,我不相信有一个正确的答案,我不是故意尝试激烈的党派争吵.当我问这个问题时,我只对单身替代品感兴趣:

他们是GOF Singleton模式的任何特定替代品吗?

例如,很多次我在过去使用单例模式时,我只想保留一个或多个变量的状态/值.但是,变量的状态/值可以使用静态变量而不是使用单例模式在类的每个实例化之间保留.

还有什么其他的想法?

编辑: 我真的不希望这是另一篇关于"如何正确使用单身人士"的帖子.再一次,我正在寻找避免它的方法.为了好玩,好吗?我想我在你最好的电影预告片中问一个纯粹的学术问题,"在一个没有单身的平行宇宙中,我们能做什么?"

singleton design-patterns

89
推荐指数
6
解决办法
2万
查看次数

为什么使用单例而不是静态方法?

我从来没有找到关于帮助器/实用程序类的这些简单问题的良好答案:

为什么我要创建一个单例(无状态)而不是使用静态方法?

如果对象没有状态,为什么需要对象实例?

java singleton design-patterns

89
推荐指数
4
解决办法
4万
查看次数

AngularJS中的非单身人士服务

AngularJS在其文档中明确指出服务是单身人士:

AngularJS services are singletons
Run Code Online (Sandbox Code Playgroud)

与直觉相反,module.factory也返回一个Singleton实例.

鉴于非单例服务有很多用例,实现工厂方法返回服务实例的最佳方法是什么,这样每次ExampleService声明一个依赖项时,它都会被一个不同的实例所满足ExampleService

service singleton factory instance angularjs

89
推荐指数
4
解决办法
5万
查看次数

Singleton设计模式与Spring容器中的Singleton bean相比

我们都知道我们在Spring容器中默认使用bean作为单例,如果我们有一个基于Spring框架的Web应用程序那么在这种情况下我们真的需要实现Singleton设计模式来保存全局数据而不是仅仅通过spring创建一个bean .

如果我无法解释我其实想要问的问题,请耐心等待.

java singleton spring containers

87
推荐指数
6
解决办法
12万
查看次数

单例在Swift 3中具有属性

在Apple的使用Swift with Cocoa和Objective-C文档(针对Swift 3更新)中,他们给出了以下Singleton模式的示例:

class Singleton {
    static let sharedInstance: Singleton = {
        let instance = Singleton()

        // setup code

        return instance
    }()
}
Run Code Online (Sandbox Code Playgroud)

让我们假设这个单例需要管理一个可变的字符串数组.如何/在哪里声明该属性并确保它被正确初始化为空[String]数组?

singleton swift3

87
推荐指数
3
解决办法
8万
查看次数

nodejs中的单例模式 - 是否需要?

最近,我碰上了这篇文章如何写在Node.js的一个单 我知道require 各州的文件:

模块在第一次加载后进行缓存.多次调用require('foo')可能不会导致模块代码多次执行.

因此,似乎每个必需的模块都可以很容易地用作单例,而不需要单独的样板代码.

题:

上面的文章是否提供了关于创建单例的解决方案?

javascript singleton design-patterns node.js

86
推荐指数
8
解决办法
7万
查看次数

在Java中使用Enum作为单例的最佳方法是什么?

基于SO问题编写的最佳单例实现在Java中 - 即使用枚举创建单例 - 有什么区别/优点/缺点(构造函数省略)

public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后打电话 Elvis.INSTANCE.getAge()

public enum Elvis {
    INSTANCE;
    private int age;

    public static int getAge() {
        return INSTANCE.age;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后打电话 Elvis.getAge()

java singleton

85
推荐指数
4
解决办法
8万
查看次数

.NET中双重检查锁定需要volatile修饰符

多个文本说,当在.NET中实现双重检查锁定时,您锁定的字段应该应用volatile修饰符.但为什么呢?考虑以下示例:

public sealed class Singleton
{
   private static volatile Singleton instance;
   private static object syncRoot = new Object();

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null) 
         {
            lock (syncRoot) 
            {
               if (instance == null) 
                  instance = new Singleton();
            }
         }

         return instance;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么不"锁定(syncRoot)"完成必要的内存一致性?在"lock"语句之后,读取和写入都是不稳定的,因此必须实现必要的一致性,这不是真的吗?

c# singleton volatile

80
推荐指数
4
解决办法
2万
查看次数