0

我目前有一个作为单例实现的缓存对象(它是字典的包装器)。

我刚刚阅读了这篇关于单例模式的文章: 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 回答 1

0

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

于 2012-11-01T13:58:27.997 回答