像大多数软件一样,用户可以指定他们希望如何处理某些事情。在我的情况下,用户可以指定他们希望使用哪种格式。有三个选项:不进行格式化、驼峰命名法或首字母大写。目前我已经实现了这个功能,但它感觉非常笨重和重复。以下是该类的要点。
public static class Extensions
{
public static string GetPreferenceFormattedText(this string text, ApplicationPreferences applicationPreferences, bool pluralize)
{
if (applicationPreferences.FieldNamingConvention.Equals(FieldNamingConvention.SameAsDatabase))
return text;
string formattedText = text.Replace('_', ' ');
formattedText = formattedText.MakeTitleCase();
formattedText = formattedText.Replace(" ", "");
if (applicationPreferences.FieldNamingConvention.Equals(FieldNamingConvention.Prefixed))
return applicationPreferences.Prefix + formattedText;
return applicationPreferences.FieldNamingConvention.Equals(FieldNamingConvention.CamelCase)
? formattedText.MakeFirstCharLowerCase()
: formattedText;
}
}
这个方法本身并不会让人感到笨拙。问题在于它的调用方式。每次想要获取格式化文本时都需要传递用户偏好设置,似乎不是最好的选择。我是否最好创建一个常规类,并通过构造函数传递应用程序偏好对象呢?
谢谢。