以下类显示类似于实际用例的内容。它始终为同一个线程返回相同的实例。
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”?
答案 0 :(得分:6)
有些人简称为ThreadLocal Pattern。另一个已知名称是Thread-local Storage (TLS)。
答案 1 :(得分:4)
不是工厂。看起来像一个单身人士。工厂的想法是创建基于类的dirrived对象。
答案 2 :(得分:0)
getInstance()
绝对是工厂方法。
有人可能会为整个每线程伪单身人士提供一个很酷的名字,但由于这种情况过于罕见,因此广泛相关,没有任何价值。 “Per-thread singleton”对我来说听起来是最好的选择。
答案 3 :(得分:-1)