해결해야 할 복잡한 작업이있는 경우 실행을 제어하는 한 가지 방법이있는 경우가 종종 있습니다. null 검사, if 문, 형식간에 매핑하는 메서드 호출 등으로 인해이 메서드는 실제로 길어질 수 있으므로 더 쉽게 만들려고 노력하고 있습니다.메소드 호출에 대한 책임 대상은 누구입니까?
예 1 I 체인 첫 번째 방법 간단하게 메소드 호출을 할 수
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...
}
? 어떻게 다른 방법을 호출 할 책임이있는 방법이 될 때 어떻게 생각해야합니까?
즉, I는 다음과 같이 수행해야합니다class A
{
Execute()
{
A();
B();
C();
}
method A()
{
...
}
method B()
{
...
}
method C()
{
...
}
}
또는 같은
:class B
{
Execute()
{
A();
}
method A()
{
B();
}
method B()
{
C();
}
method C()
{
...
}
}
두 번째 예에서 무엇이 어려움을 겪고 있는지 명확하지 않습니다. 대부분 당신은 클래스 의존성을 최소화하는 것에 관심을 가져야한다. (느슨한 결합에 대해 읽는다.) – Megamozg
@Megamozg 나는 질문을 편집하여 희망을 더 분명히했다. 예제 1과 2는 다른 방식으로 동일한 결과를 얻지 만, 종속성은 다른 장소에서 끝납니다. 예제 1 또는 2를 원하십니까? 예제 1을 선호한다면, 그 방법을 길게 관리하고 어떻게하면 더 많은 일을 할 수 있을까요? – Paul