ヘルパーは、外部コンポーネントを補完する限り、無害な追加のクラスまたはメソッドです。反対の場合、権限がまったくない場合、コードはその権限から除外されているため、デザインが悪いことを示します。
無害なヘルパーの例を次に示しFindRep
ます。先頭のゼロの数をカウントするというメソッドを使用します。
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; }
}
}