在面向对象方法中使用静态属性或方法的不便之处是什么?

Ses*_*aat 3 c# oop

我需要解释一下为什么我不使用静态方法/属性.例如,

String s=String.Empty;
Run Code Online (Sandbox Code Playgroud)

这个属性(属于.Net框架)错了吗?是应该的?

String s= new EmptySting();
Run Code Online (Sandbox Code Playgroud)

要么

IEmptyStringFactory factory=new EmptyStringFactory();

String s= factory.Create();
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 9

为什么每次要使用空字符串时都要创建新对象?基本上空字符串是单个对象.

威尔说,静可以肯定是有问题的,当涉及到的测试,但是,这并不意味着你应该使用静态随处可见.

(我个人更喜欢使用""代替string.Empty,但这是在其他地方做过的死亡讨论.)


小智 7

我认为使用静态的最糟糕的事情是你最终可以在类之间进行紧密耦合.在System.Web.Abstractions出来之前看到ASP.NET.这使您的类更难以测试,并且可能更容易出现导致系统问题的错误.