도우미는 외부 구성 요소를 보완하는 한 무해한 추가 클래스 또는 메서드입니다. 반대로, 권한이 있으면 코드가 권한에서 제외 되었기 때문에 잘못된 디자인을 나타냅니다.
여기에 무해한 도우미의 예가 있습니다. 나는 FindRep
선행 0의 수를 세는 메소드를 사용합니다 .
digits = digits.Remove(0, TextHelper.FindRep('0', digits, 0, digits.Length - 2));
도우미 방법은 매우 간단하지만 복사하여 붙여 넣기가 매우 불편하며 프레임 워크는 솔루션을 제공하지 않습니다.
public static int FindRep(char chr, string str, int beginPos, int endPos)
{
int pos;
for (pos = beginPos; pos <= endPos; pos++)
{
if (str[pos] != chr)
{
break;
}
}
return pos - beginPos;
}
그리고 다음은 나쁜 도우미의 예입니다.
public static class DutchZipcodeHelper
{
public static bool Validate(string s)
{
return Regex.IsMatch(s, @"^[1-9][0-9]{3}[A-Z]{2}$", RegexOptions.IgnoreCase);
}
}
public class DutchZipcode
{
private string value;
public DutchZipcode(string value)
{
if (!DutchZipcodeHelper.Validate(value))
{
throw new ArgumentException();
}
this.value = value;
}
public string Value
{
get { return value; }
}
}