0

下面的类显示了类似于真实用例的内容。它总是为同一个线程返回同一个实例。

public class LookingForName {

    private static final ThreadLocal<Something> threadLocal = 
        new ThreadLocal<Something>(){
            @Override
            protected Something initialValue() {
                return getSomethingSpecial(); // not relevant
            }
        };

    /**
     * @return always the same instance of "Something" for the current thread.
     */
    public static Something getInstance() {
        return threadLocal.get();
    }

}

你会怎么称呼它?是“工厂”吗?“价值持有者”?“线程本地存储”?

4

3 回答 3

6

有些人简单地将其称为ThreadLocal Pattern。另一个已知名称是线程本地存储 (TLS)

于 2010-08-11T11:38:49.793 回答
4

不是工厂。看起来像一个单身人士。工厂的想法是创建基于类的对象。

于 2010-08-11T11:28:13.640 回答
0

getInstance()绝对是一种工厂方法。

有人可能会为整个每线程伪单例想出一个很酷的名称,但由于这种情况太罕见而无法广泛相关,因此没有任何价值。“每线程单例”对我来说听起来是最好的选择。

于 2010-08-11T11:33:12.617 回答