标签: singleton

如何只有一个类的实例?

有没有办法在类中创建唯一的实例?

此时,我正在尝试只创建一个Random类的实例.有几次我需要用一粒种子.以后可以换种子吗?

我不确定,我猜这是一个单身人士.

更新:我需要的是只有一个Random类的实例.这个想法是使用相同种子的几次.但后来我需要改变种子,所以我不确定单身是否是最好的方法,因为我想改变种子意味着创建一个新的实例.

c# random singleton design-patterns

0
推荐指数
2
解决办法
3446
查看次数

Singleton bean在Spring MVC中多次实例化?

有谁知道为什么这个bean多次被实例化?我只想要它的一个实例,但每次控制器运行时,都会再次调用构造函数.

这是我的applicationContext.xml中的定义

<bean id="DiameterClient" class="com.rory.diameter.client.DiameterClient" scope="singleton" init-method="start">
    <constructor-arg type="java.lang.String" index="0"><value>${pcca.host}</value></constructor-arg>      
    <constructor-arg index="1"><value>${pcca.port}</value></constructor-arg>      
    <constructor-arg index="2" value="com.openwave.djgx.message"/>
    <constructor-arg index="3" value="com.openwave.djgx.avp"/>    
</bean>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中这里是我正在使用它 - 我虽然这只会获得DiameterClient类的一个实例,但每次下面的代码运行时它都会调用它的构造函数 - 任何帮助都非常感激:

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
DiameterClient diameterClient = (DiameterClient)factory.getBean("DiameterClient");
diameterClient.send(aar);
Run Code Online (Sandbox Code Playgroud)

注意,DiameterClient不是我的类,我不想编辑它,只想每个应用程序有一个全局实例.另请注意,DiameterClient扩展了Thread - 不确定这是否重要.

java singleton spring web.xml spring-mvc

0
推荐指数
1
解决办法
1408
查看次数

Objective-C单例只响应类方法

我有一个单例类,实例化如下:

#import "FavoritesManager.h"

static FavoritesManager *sharedFavoritesManager = nil;

@implementation FavoritesManager

+ (id)sharedManager {
    @synchronized(self) {
        if (sharedFavoritesManager == nil) {
            sharedFavoritesManager = [[self alloc] init];
        }
    }

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

这会返回一个对象,但由于某种原因它只会响应类方法.如果我调用实例方法,我会得到

+[FavoritesManager testMethod]: unrecognized selector sent to class 0x59198
Run Code Online (Sandbox Code Playgroud)

对于它的价值,这就是testMethod的样子:

- (void)testMethod {
    NSLog(@"Test");
}
Run Code Online (Sandbox Code Playgroud)

我绝对肯定它在界面中声明.我在其他类中使用了这个确切的代码,它就像一个魅力,所以我真的不明白这里的问题是什么.有一点可疑的是加号+[FavoritesManager testMethod],但我无法解释.有任何想法吗?

编辑:我混淆了公共/私人和类/方法术语.感谢所有指出这一点的人.

iphone singleton objective-c ios

0
推荐指数
1
解决办法
2567
查看次数

单例死锁错误

我正在尝试更多地设计模式,我正在构建一个快速测试,以帮助我进一步了解单例模式.然而,我在.net中遇到了一个让我感到困惑的错误,是什么让它更奇怪我无法复制错误,这只会增加我的困惑.下面的代码不是世界上最好的代码,但我随机测试的东西可以帮助我更深入地理解.

class Program
{

    static void Main(string[] args)
    {
        Thread t1 = new Thread(new ThreadStart(run1));
        Thread t2 = new Thread(new ThreadStart(run2));

        t1.Priority = ThreadPriority.Lowest;
        t1.Start();
        t2.Priority = ThreadPriority.Lowest;
        t2.Start();

        Console.ReadLine();
    }

    public static void run1()
    {
        Console.WriteLine("im in run1 \n");
        TestSingleton._instance.PopulateCrudItemsProcess();
        Thread.Sleep(1000);
        Console.WriteLine(TestSingleton._instance.GetStrValue("first", 1000));
    }
    public static void run2()
    {
        Console.WriteLine("im in run2 \n");
        TestSingleton._instance.PopulateCrudItemsProcess();
        Console.WriteLine(TestSingleton._instance.GetStrValue("second", 500));

    }

}

sealed class TestSingleton
{
    private TestSingleton() { }

    public static readonly TestSingleton _instance = new TestSingleton();

    public string GetStrValue(string str, int …
Run Code Online (Sandbox Code Playgroud)

.net c# singleton design-patterns

0
推荐指数
1
解决办法
1077
查看次数

如何在HTML5中实现app宽的内存缓存?

有没有办法为HTML5 Web应用程序实现应用程序范围的内存缓存?

是否有HTML5功能可以拥有数据的内存缓存?我不是在讨论仅存储服务器响应的浏览器缓存.我需要缓存更有效的对象.

我能想到的一种可能性是实现一个全局单例JavaScript对象,该对象将在应用程序的生命周期内创建一次,以便它可以处理缓存和检索数据.如果这是唯一的方法,那么如何创建这样的单例对象呢?

javascript html5 singleton caching global-variables

0
推荐指数
1
解决办法
2284
查看次数

为什么这个单例模式不起作用?

我有两个单例,第一个标题看起来像这样(我省略了与Singleton模式无关的所有内容):

#ifndef TEXTUREMANAGER_DEFINED_H
#define TEXTUREMANAGER_DEFINED_H
class FontManager;
class TextureManager
{
private:
    static TextureManager *instance;
    TextureManager();
public:
    FontManager *fontManager;
    static TextureManager* Instance();
};

#endif
Run Code Online (Sandbox Code Playgroud)

在实现中,这是Instance()方法(以及实例静态成员的初始化):

#include "FontManager.h"
TextureManager * TextureManager::instance = 0;
TextureManager* TextureManager::Instance ()
{
    if (instance==0)
        instance=new TextureManager;
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

这是构造函数:

TextureManager::TextureManager()
{
    fontManager=FontManager::Instance();
}
Run Code Online (Sandbox Code Playgroud)

第二个单例(FontManager)的设计完全相同,但不是FontManager指针有一个TextureManager指针,并且在它的构造函数中它使用TextureManager :: Instance()初始化该指针.这应该是这样的:TextureManager首先实例化(当程序启动时),并在其构造函数中第一次实例化FontManager单例调用FontManager :: Instance().FontManager,在它的构造函数中,使用TextureManager :: Instance()将其指针指定给TextureManager,此方法返回已存在的TextureManager实例.对?

但是代替那个程序进入无限循环,因为(我不知道为什么)Instance()方法总是创建一个新实例.我if (instance==0)总是评价为真.

c++ singleton

0
推荐指数
1
解决办法
299
查看次数

为什么不在java中提供单例实例?

您可以通过实现Singleton模式来创建类单例.如今单身人士课是基本要求.

为什么JVM在运行时不自行处理Singleton对象的创建?

通过像"Singleton"这样的标记接口,并在运行时由JVM创建一次对象实例.无论如何,如果Class没有扩展任何其他类,Java编译器会添加"extends Object".类似的方法可以应用于Singleton案例.这将节省大量的时间和开发工作以及围绕Singleton模式的各种实现的讨论.

1)同步的getInstance()

2)getInstance()内部的同步块,而不是使整个方法同步

3)选项2使用singleInstance作为volatile成员

如果你需要在多个类中实现单例模式(不考虑将返回已传递的任何类的单例实例的SingletonPatternFactory类),这也将节省大量时间和重复工作.

java singleton

0
推荐指数
1
解决办法
210
查看次数

NSMutableDictionary错误地设置对象

我有一个单例类,我设置了一个NSMutableDictionary被调用的completedLevels.

这是我设置的init方式(在我的单身人士的方法中):

        NSString *mainPath = [[NSBundle mainBundle] bundlePath];
        NSString *levelConfigPlistLocation = [mainPath stringByAppendingPathComponent:@"levelconfig.plist"];
        NSDictionary *levelConfig = [[NSDictionary alloc] initWithContentsOfFile:levelConfigPlistLocation];
        completedLevels = [[NSMutableDictionary alloc]init];
        NSMutableDictionary *levelSets = [[NSMutableDictionary alloc]init];
        NSMutableDictionary *levels = [[NSMutableDictionary alloc]init];
        NSMutableDictionary *stats = [[NSMutableDictionary alloc]init];

        [stats setObject:[NSNumber numberWithBool:NO] forKey:@"levelDone"];
        [stats setObject:[NSNumber numberWithInt:0] forKey:@"stars"];
        [stats setObject:[NSNumber numberWithInt:0] forKey:@"time"];
        [stats setObject:[NSNumber numberWithInt:0] forKey:@"bestTime"];

        for (int i = 1; i<=18; i++) {
            [levels setObject:stats forKey:[NSString stringWithFormat:@"level%d", i]];
        }



        for(int i= 1; i<=15;i++){
        NSString *lvlSet …
Run Code Online (Sandbox Code Playgroud)

singleton objective-c nsmutabledictionary ipad

0
推荐指数
1
解决办法
667
查看次数

Singleton模式与静态构造函数的优点是什么?

我有一些代码如下所示.我想这是Singleton模式.为什么我需要一个静态构造函数.这也有什么好处?感谢您的回复 ...

  public sealed class Myclass
  {
    static Myclass()
    {
        Myclass.Application = new Myclass();
    }

    protected Myclass()
    {

    }

    static Myclass _application;

    public static Myclass Application
    {
        get { return Myclass._application; }
        protected set { Myclass._application = value; }
    }

    string _name;

    public string Name
    {
        get { return _name}
        protected set { _name= value; }
    }
 }
Run Code Online (Sandbox Code Playgroud)

.net c# singleton design-patterns

0
推荐指数
1
解决办法
2883
查看次数

在C#中实现类的静态/单例接口

我有一个(现在)是静态的类:

public static class Grob
{
    public static void Frob()
    {
        Foo.Bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

这很有效.代码电话:

Grob.Frob();
Run Code Online (Sandbox Code Playgroud)

一切都与世界是对的.现在我希望我的类实现一个接口:

public static class Grob : IOldNewGrob
{
    public static void Frob()
    {
       Foo.Bar();
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为原因.

所以我会尝试更改为单个类:

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

   private Grob() {}

   public static Singleton Instance
   {
      get 
      { 
         if (instance == null) 
         {
            lock (syncRoot) 
            {
               if (instance == null) 
                  instance …
Run Code Online (Sandbox Code Playgroud)

c# singleton static-class

0
推荐指数
1
解决办法
3412
查看次数