单身人士 - 这是不好的代码?

时间:2017-02-09 08:05:37

标签: c# design-patterns singleton

我一直听说单身人士一般都很糟糕,大多数人都会看下面的内容,并建议应该采用不同的方式:

ChatManager.Instance.WriteMessage("Hello world");

但如果将ChatManager实施为:

,该怎么办?
public class ChatManager
{
  // some methods

  public static ChatManager Instance { get { return DependencyResolver.Resolve<ChatManager>(); } }
}

基于我所听到的一切 - 基本上单个应该用大多数(有状态的)对象的依赖解析来替换 - 现在这已经没问题了,但我看到它在功能上与传统的单例方法有什么不同。

在这个问题上查看more popular个SO问题之一,接受的答案列出了单身人士不好的4个原因,其中2个(#2,#3)肯定是使用上述解决的。无论依赖项是通过构造函数传递,都是如此,无论是ASP.NET控制器的情况,还是通过您选择的依赖管理器解决的。

那么,这被认为是不好的形式,还是良好的软件工程实践?

0 个答案:

没有答案