ThreadLocal对我的用例是否正确?

时间:2015-07-29 12:49:10

标签: java multithreading thread-local

这就是我们的功能代码的结构 功能代码调用ConfigAdapter,可以从任何其他商店获取配置 现在随着需求的变化和解耦配置,我们创建了一个名为ABCConfigAdapter的新类(考虑" ABC"是一些业务特定术语)。

ABCConfigAdapterConfigAdapter具有相同的方法,但现在还有一个额外的参数要传递,称为ABCConfigAttributesABCConfigAttributes确定我们获取" ABC"的配置方式。业务用例。

由于ConfigAdapter用于功能代码需要某些配置的地方,现在变化很大。这不是实际问题,这里的问题是如何将ABCConfigAttributes作为ABCConfigAdapter的对象传递?

以下是一些方法:

  1. 由于ABCConfigAttributes中的数据特定于某个特定主题,因此我们考虑将ABCConfigAttributes存储在ThreadLocal中,以及我们想要调用ABCConfigAdapter的地方我们获取{来自ThreadLocal的{1}}并将其传递给ABCConfigAttributes
  2. 进行更改以将ABCConfigAdapter从顶级传递到层次结构!
  3. 显然#2的成本更高,因为它有很多侵入性的变化。我想了解在这些类型的用例中将Business对象存储在ThreadLocal中(如#1中所述)是否是一种好的做法?

0 个答案:

没有答案