几乎每次我编写静态类时,我最终都希望自己将其实现为非静态类。考虑:
- 可以扩展非静态类。多态可以节省很多重复。
- 非静态类可以实现接口,当您要将实现与API分开时,该接口会派上用场。
由于这两点,非静态类使编写依赖它们的项目的更可靠的单元测试成为可能。
但是,单例模式距离静态类仅半步之遥。你_那种_得到这些好处,但如果你是直接与其它类中通过`ClassName.Instance”访问它们,你要创建一个障碍访问这些好处。就像ph0enix指出的那样,使用依赖项注入模式会更好。这样,可以告诉DI框架特定类是(或不是)单例。您将获得模拟,单元测试,多态性和更多灵活性的所有好处。



