标签: singleton-methods

Ruby单例类

我不确定这个之间的区别.

def String.hello  
  puts "hello there"   
end
Run Code Online (Sandbox Code Playgroud)

x = Person.new    
def x.hello    
  puts "hello there"    
end
Run Code Online (Sandbox Code Playgroud)

根据我的理解,第二个代码块将创建Person类的对象.当我执行def x.hello时,它会创建一个匿名类(单例类),在向x对象发送消息时,将首先检查方法.

def String.hello的情况是否相同?String只是类Class的实例正确吗?我已经读过,做def String.hello会将方法添加为String的类方法之一....这与创建的匿名类不同,后者位于对象及其类之间,获取其实例方法.

上面的两个代码块会发生什么?

ruby singleton-methods

3
推荐指数
1
解决办法
3261
查看次数

`Object#define_singleton_method(symbol,method)`如何在ruby中运行?

来自 Doc of define_singleton_method

我有两种语法来定义singleton方法如下:

define_singleton_method(symbol){block} - > proc:

使用上面的语法,我尝试了下面的代码和我理解的语法:

define_singleton_method :foo do |params = {}|
 params
end
#=> #<Proc:0x20e6b48@(irb):1 (lambda)>

foo
#=> {}

foo(bar: :baz)
#=> {:bar=>:baz}

foo(bar: :baz ,rar: :gaz )
#=> {:bar=>:baz, :rar=>:gaz}
Run Code Online (Sandbox Code Playgroud)

但需要有人的帮助,用以下语法找出每个例子.

define_singleton_method(symbol,method) - > new_method

根据文档 - 方法参数可以是a Proc,a MethodUnboundMethod对象.我没有在那里得到任何例子.

谁能帮助我在这里得到一个反对斜体字的例子?

ruby singleton-methods ruby-1.9.3

3
推荐指数
2
解决办法
4204
查看次数

单身螺纹安全

我的问题是关于类功能的线程安全性.这是一些测试代码,我已经齐心协力尝试并获得更好的理解.

public sealed class Singleton
{  
    public static Singleton Instance { get { return _lazyInit.Value; } }

    private static readonly Lazy<Singleton> _lazyInit = new Lazy<Singleton> (() => new Singleton());

    public long ExecuteAlgorithm(int n)
    {
            n += 2;
            return new Algorithm().Fibonacci(n);
    }
}

public class Algorithm
{
    public long Fibonacci(int n)
    {
        long a = 0;
        long b = 1;

        for (long i = 0; i < n; i++)
        {
            long temp = a;
            a = b;
            b = temp + …
Run Code Online (Sandbox Code Playgroud)

c# singleton-methods

3
推荐指数
1
解决办法
109
查看次数

单身实施.阻止外部使用的alloc和init方法

我有一个我希望作为Singleton实现的类.

我希望通过以下方式创建/访问此类实例的唯一方法是:

+(MYClass*)sharedInstance 
Run Code Online (Sandbox Code Playgroud)

方法.在方法实现中调用alloc和init(当然).

有没有办法阻止alloc和init的使用,或者让它们"空",如果尝试通过sharedInstance方法创建该类的实例(但直接通过alloc + init)?

singleton init singleton-methods alloc ios

2
推荐指数
1
解决办法
1034
查看次数

Objective-C Singleton问题.在一个类中识别的对象,而不是另一个类

我的问题是我可以从一个类中的sharedInstance Singleton访问方法和属性,但我不能在另一个类中访问.

例如,下面的代码可以工作,并由X代码识别.工作良好.return [[[SINGLETON sharedInstance] baseballArray] count];

此外:

theSelectedBaseball = [[[SINGLETON sharedInstance]baseballArray]objectAtIndex:indexPath.row];

SINGLETON *singleton = [SINGLETON sharedInstance];
[singleton setSelectedBaseball:theSelectedBaseball];
Run Code Online (Sandbox Code Playgroud)

但是,如果我在另一个类中尝试上面的代码,我会收到以下警告消息: - Method - setSelectedBaseball:not found.

我在所有要使用它的类中导入SINGLETON标头.我仔细观察了它正在被认可的课程而不是其他课程,但是我无法弄清楚为什么它没有得到认可.

这是我的Singleton类.

#import <Foundation/Foundation.h>
#import "Baseball.h"

@interface SINGLETON : NSObject {

NSArray *baseballArray;
Baseball *selectedBaseball;
}

@property (nonatomic, retain) NSArray *baseballArray;
@property (nonatomic, retain) Baseball *selectedBaseball;

+ (SINGLETON*) sharedInstance;
- (void)setSelectedBaseball:(Baseball *)theBaseball;
- (Baseball*)getSelectedBaseball;

@end
Run Code Online (Sandbox Code Playgroud)

执行:

#import "SINGLETON.h"
#import "Baseball.h"

@implementation SINGLETON

@synthesize baseballArray, selectedBaseball;
static SINGLETON *instance = nil;

+ (SINGLETON*)sharedInstance
{
@synchronized(self) { …
Run Code Online (Sandbox Code Playgroud)

iphone xcode singleton objective-c singleton-methods

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

在AppDelegate中设置的Singleton在另一个类中分配时会丢失它的值

我有一个iPad应用程序,我试图使用单例.这是.h文件中的代码:

//-------------------------------------------
//--  singleton: timeFormat
@interface SingletonTimeFormat : NSObject  {
}
@property (nonatomic, retain) NSNumber *timeFormat;

+ (id)sharedTimeFormat;
@end
Run Code Online (Sandbox Code Playgroud)

这是.m文件中的代码:

//-------------------------------------------
//--  SingletonTimeFormat
@implementation SingletonTimeFormat  {

}

@synthesize timeFormat;

//--  sharedColorScheme  --
+ (id)sharedTimeFormat  {

static dispatch_once_t dispatchOncePredicate = 0;
__strong static id _sharedObject = nil;
dispatch_once(&dispatchOncePredicate, ^{
    _sharedObject = [[self alloc] init];
});

return _sharedObject;
}

-id) init {
self = [super init];
if (self) {
    timeFormat = [[NSNumber alloc] init];
}
return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

我在AppDelegate中加载了值(12或24)- didFinishLaunchingWithOptions …

singleton objective-c singleton-methods ios7

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

Collections.singleton()方法不能作为文档?

我已经测试了Collections.singleton()方法,如何工作,但我发现它不像文档说的那样工作?

List arraylist= new ArrayList();
arraylist.add("Nguyen");
arraylist.add("Van");
arraylist.add("Jone");
List list = Collections.singletonList(arraylist);// contains three elements
System.out.println(list.size());// right
Run Code Online (Sandbox Code Playgroud)

正如文档所说,方法调用返回一个只包含指定对象的不可变列表.单例列表只包含一个元素,单例HashMap只包含一个键.单例对象是不可变的(不能修改以添加一个元素),但是当我在代码中看到的那个列表包含三个元素("Nguyen","Van","Jone")时.

谁能解释一下为什么?非常感谢 !!

java collections singleton-methods

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

在Fixnum的实例上定义方法

我可以在这样的实例上定义一个方法:

object = Object.new
def object.foo
  puts "5"
end
Run Code Online (Sandbox Code Playgroud)

尝试与a类似的东西Fixnum不起作用:

def 3.foo
  puts "3"
end

def 3.foo
     ^
(irb):7: syntax error, unexpected keyword_end, expecting end-of-input
Run Code Online (Sandbox Code Playgroud)

这是什么原因?

我知道这是我永远不应该做的事情.我只是想知道为什么这不像我预期的那样工作.

ruby singleton-methods literals

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

在单例类中调用方法的最佳方法

我有一个单身课程

public class Singleton {
static Singleton instance;
public static Singleton getInstance() 
{
    if (instance == null) 
    {
        instance = new Singleton();
    }
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

考虑一个公共函数方法()在类Singleton中定义.

哪个是在单例类中调用方法的最佳方法:

辛格尔顿.method() - 静态调用的方法

要么

Singleton.getInstance.method() - 方法不是静态的?

java singleton singleton-methods

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