从容器中获取静态数据

时间:2012-11-01 13:54:04

标签: c# design-patterns caching inversion-of-control ioc-container

我目前有一个Cache对象(它是一个字典的包装器),实现为Singleton。

我刚读过这篇关于Singleton模式的文章: http://ayende.com/blog/159426/design-patterns-in-the-test-of-time-singleton?key=e4eedc32-f43f-44e9-966d-90a6ff792ddf

它让我想到也许我应该利用我的IoC容器而不是单身人士。 因为我发现很难测试访问Singleton的部分代码。

所以我的问题是:

Castle中的Singleton生活方式(或任何IoC容器)是否与手工制作的GoF Singleton相同?

这造成了我非常奇怪的情况

  1. 在容器中注册我的所有依赖项
  2. 然后解决填充缓存的某种引导程序,
  3. 然后将缓存添加为容器的另一个注册
  4. 是初始化容器的合法方式吗? 没有同时完成所有注册似乎有点奇怪

1 个答案:

答案 0 :(得分:0)

Singleton只有一个对象实例,在这种情况下由依赖注入框架实现。 Singleton不是关于初始化的时间。您可以创建单例并稍后初始化/修改它。您可以随时将对单身人士的引用传递给其他对象。