몇 가지 (~ 20 +) 구성 옵션을 허용하려는 클래스가 있습니다. 각 옵션은 기능을 켜거나 끕니다. 그렇지 않으면 작업이 변경됩니다. 이 작업을 용이하게하기 위해 기본값을 사용하여 별도의 옵션 클래스를 코딩했습니다. 그러나 메소드가 작동해야하는 방식을 결정하기 위해 코드를 가드 조건에 버려야했습니다. 나는 거의 끝났지 만, 지금은 코드가 냄새가 나는 것처럼 보입니다."옵션"을 클래스에 추가하기위한 패턴이 있습니까?
이와 같은 클래스를 구현하는 데 선호되는 방법/패턴이 있습니까?
편집 : 특히, 나는 파싱 클래스 작업을하고 있습니다. 각 옵션은 기본 구문 분석 알고리즘의 상호 배타적 인 부분을 구성합니다. 예를 들어 나는 아래처럼 내 클래스의 여러 분야가 있습니다
if (this.Option.UseIdAttribute)
attributeIDs = new Hashtable();
else
attributeIDs = null;
public Element GetElementById(string id)
{
if (string.IsNullOrEmpty (id))
throw new ArgumentNullException("id");
if (attributeIDs == null)
throw new Exception(ExceptionUseIdAttributeFalse);
return attributeIDs[id.ToLower()] as Element;
}
코드를 게시하지 않는 한 말을하기가 매우 어렵습니다 ... – johnstok