设计模式名称:它是工厂吗?

时间:2010-08-11 11:26:27

标签: java design-patterns naming-conventions factory-pattern thread-local

以下类显示类似于实际用例的内容。它始终为同一个线程返回相同的实例。

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();
    }

}

你怎么称呼它?它是“工厂”吗? “价值持有者”? “ThreadLocalStore”?

4 个答案:

答案 0 :(得分:6)

有些人简称为ThreadLocal Pattern。另一个已知名称是Thread-local Storage (TLS)

答案 1 :(得分:4)

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

答案 2 :(得分:0)

getInstance()绝对是工厂方法。

有人可能会为整个每线程伪单身人士提供一个很酷的名字,但由于这种情况过于罕见,因此广泛相关,没有任何价值。 “Per-thread singleton”对我来说听起来是最好的选择。

答案 3 :(得分:-1)

有关工厂方法设计模式和其他相关模式的完整参考,请参阅本文

http://www.codinguide.com/2010/04/factory-pattern.html

此致