流畅的API和方法链接样式用法

时间:2010-03-08 16:55:58

标签: c# coding-style method-chaining fluent-interface

当使用流畅的API进行编程或仅使用方法链接时,我看到的风格大多是这样的:

var obj = objectFactory.CreateObject()
    .SetObjectParameter(paramName, value)
    .SetObjectParameter(paramName, value)
    .DoSomeTransformation();

将点放在行的开头而不是行的末尾的原因是什么:

var obj = objectFactory.CreateObject().
    SetObjectParameter(paramName, value).
    SetObjectParameter(paramName, value).
    DoSomeTransformation();

或者,这只是团队达成共识的风格吗?

2 个答案:

答案 0 :(得分:12)

这只是一种风格。

放入的优势。在这一行的开头是,它使得它更加清晰,快速浏览这不是一个独立的方法调用。

例如,如果你这样做:

var obj = objectFactory.CreateObject()
    .SetObjectParameter(paramName, value)

你可以看出SetObjectParameter(...)是一个在其他对象上调用的方法,只是查看该行。这样做:

var obj = objectFactory.CreateObject().
    SetObjectParameter(paramName, value)

要求你查看上一行告诉。例如,这可能是格式化问题,即:

var obj = objectFactory.CreateObject();
    SetObjectParameter(paramName, value);

(这里,SetObjectParameter将是当前类型的方法,而不是CreateObject()返回的类型 - 但是,通过查看第二行,如果没有,那么这是不明显的。线)。

答案 1 :(得分:5)

我能想到的三个原因:

  • 更明显的是,每个陈述都是前一个陈述的延续。
  • 我发现Visual Studio的intellisense更喜欢这种方式。
  • 至少在我看来,这对眼睛来说更容易。