如果我有复杂的任务要解决,我有时会遇到一种情况,即我有一种方法可以控制执行。由于 null 检查、if 语句、调用类型之间映射的方法等等,这个方法可能会变得非常长,我很难让它变得更简单。
示例 1
public class A
public string MethodA(string stringA)
{
var fooResult = _fooService.fooMethod(stringA);
if(fooResult)
var barResult = _barService.barMethod(fooResult);
if(barResult)
// And so on..
return someResult;
}
我可以链接方法调用,这使得第一种方法更简单。但这使得 fooMethod 依赖于 _barService,barMethod 依赖于 _someService 等等。
示例 2(与上面相同,但使用链式方法调用)
public class B
public string MethodB(string stringB)
{
return _fooService.fooMethod(stringB);
}
public class Foo
public string fooMethod(string stringB)
{
return _barService.barMethod(stringB);
}
public class Bar
public string barMethod(string fooString)
{
return _someService.someMethod(fooString);
// And so on...
}
我应该如何构建我的代码?当涉及到哪个方法负责调用另一个方法时,我应该怎么想?
换句话说,我应该这样做:
class A
{
Execute()
{
A();
B();
C();
}
method A()
{
...
}
method B()
{
...
}
method C()
{
...
}
}
或者像这样:
class B
{
Execute()
{
A();
}
method A()
{
B();
}
method B()
{
C();
}
method C()
{
...
}
}