我怎么称呼这种编程风格?

Ben*_*Ben 1 coding-style

我正在使用一个通过实例变量传递状态的类型.所以你会看到这样的方法:

public MyType MyMethod()
{
  DoThisMethod();
  DoThatMethod();
  AndDoThis();

  return _bleh;
}
Run Code Online (Sandbox Code Playgroud)

这是公认的方法吗?

使用此代码有点令人不安,因为如果您不完全理解代码,实例变量可能会在您不知情的情况下通过其他方法进行转换.如果通过方法参数传递状态,那么您可以对传入的参数的值非常有信心.

Mat*_*ell 5

如果这些方法调用的顺序很重要,我会称之为"错误编程" - 正如您所说的,任何需要较早调用的方法都应该使用指示这一点的方法参数.

我非常确定Code Complete提供了一些很好的例子.

基本上类似于以下内容,其中每个方法都需要先前的调用结果.

public MyType MyMethod() 
{ 
    thisResult = DoThisMethod(); 
    thatResult = DoThatMethod(thisResult); 
    _bleh = AndDoThis(thatResult ); 

    return _bleh; 
} 
Run Code Online (Sandbox Code Playgroud)

其次,我喜欢尽可能保持方法"正交"(即它们仅取决于您提供它们的状态等).有关Orthogonal Code的精彩摘要,请参阅此文章.

  • 自从你提出cc:那本书称之为"顺序凝聚力",并说这是可以接受的,但应该重新考虑以展现功能凝聚力. (2认同)