하자 내가 절차가 있다고 물건을하지를 :
void doStuff(initalParams) {
...
}
이제 나는 "일을하는 것"이 상당히 복잡한 작업이라는 것을 알게되었습니다. 절차가 커지고 여러 개의 작은 절차로 나누고 곧 어떤 종류의 상태 를 갖는 것이 작업을 수행하는 동안 유용 할 것이므로 작은 절차 사이에 더 적은 매개 변수를 전달해야합니다. 그래서 나는 그것을 자신의 클래스로 분해합니다.
class StuffDoer {
private someInternalState;
public Start(initalParams) {
...
}
// some private helper procedures here
...
}
그리고 나는 이것을 다음과 같이 부릅니다.
new StuffDoer().Start(initialParams);
또는 이와 같이 :
new StuffDoer(initialParams).Start();
그리고 이것이 잘못된 느낌입니다. .NET 또는 Java API를 사용할 때 항상 호출하지 않으므로 new SomeApiClass().Start(...);
잘못하고 있다고 의심됩니다. 물론 StuffDoer의 생성자를 비공개로 만들고 정적 도우미 메소드를 추가 할 수 있습니다.
public static DoStuff(initalParams) {
new StuffDoer().Start(initialParams);
}
그러나 외부 인터페이스가 하나의 정적 메소드로만 구성된 클래스가 있는데 이상하게 느껴집니다.
따라서 내 질문 :이 유형의 클래스에 대해 잘 설정된 패턴이 있습니까?
- 하나의 진입 점 만 있고
- "외부 적으로 인식 할 수있는"상태가없는 경우, 즉 하나의 진입 점을 실행 하는 동안에 만 인스턴스 상태가 필요 합니까?
bool arrayContainsSomestring = new List<string>(stringArray).Contains("somestring");
돌보는 모든 것이 특정 정보와 LINQ 확장 방법을 사용할 수 없다는 것과 같은 일을하는 것으로 알려져 있습니다. 잘 작동하고if()
농구대를 뛰어 넘을 필요없이 조건 안에 맞습니다 . 물론 그런 코드를 작성하는 경우 가비지 수집 언어를 원합니다.