通过静态init方法初始化静态字段的最佳方法是什么,然后确保永远不再调用该方法?(在计划有效期内不超过一次)
这是我目前想到的一个例子,对我来说似乎很简单,但我找不到任何类似模式的例子来解决这个问题:
class Entity
{
static Manager manager;
static bool isInitialized;
public static void Initialize(Manager manager)
{
if (isInitialized)
throw Exception("Class Entity already initialized."
+ "Do not call Entity.Initialize() twice.");
isInitialized = true;
Entity.manager = manager;
}
}
Run Code Online (Sandbox Code Playgroud)
通过静态init方法初始化静态字段的最佳方法是什么,然后确保永远不再调用该方法?
你真的必须这样做吗?为什么你不想创建一个实例Manager并使其可用于通过依赖注入依赖它的代码?这将使您的代码更清洁:
Manager将以更清晰的方式表达依赖性我怀疑你没有找到任何类似的例子,因为它是一个反模式.
如果您确实采用当前的方法,那么您应该尝试使其成为线程安全的......