2011-09-01 72 views

回答

3

如果不调用此方法后需要的情况下,你可能有一个静态方法更好的SomeClass

var o = SomeClass.DoSomething(someParam); 

结束,如果因任何原因,你是绝对需要一个新的实例执行DoSomething然后你可以创建一个静态的事实方法,使代码更具可读性,例如:

var o = SomeClass.GetInstance().DoSomething(someParam) 
1

风格方面没有问题。 如果您在调用DoSomething方法后需要构造SomeClass,则会出现问题。

4

不,这很好 - 特别是你可能经常看到它用作建造者的类型。例如:

string x = new StringBuilder().Append("Foo") 
           .AppendFormat("{0}:{1}", x, y) 
           .ToString(); 

或在我Protocol Buffers的端口:

Person p = new Person.Builder { Name = "Jon", Age = 35 }.Build(); 

这里Person类型是不可改变的,但建设者类型不是 - 所以你创建一个生成器,设置一些属性,然后致电Build

1

这不是有缺陷的设计。我想说唯一的问题是可读性,如果你的团队的其他人没有使用这种风格,那么不要使用它,尤其是var因为它使得它更难理解返回的内容。对我来说,我个人喜欢它,因为我习惯从jquery链接。

相关问题