У меня есть класс следующим образом: -
interface IFilterCondition
{
List<Name> ApplyFilter(List<Name> namesToFilter);
}
class FilterName : IFilterCondition
{
public NameFilterEnum NameFilterEnum{ get; set; }
public List<Name> ExcludeList { get; set; }
public char StartCharacter{ get; set; }
#region IFilterCondition Members
public List<Name> ApplyFilter(List<Name> namesToFilter)
{
switch (NameFilterEnum)
{
case NameFilterEnum.FilterFirstName:
// Check Exclude List
// Check Start Character
break;
case NameFilterEnum.FilterLastName:
// Check Exclude List only
break;
default:
break;
}
return namesToFilter;
}
#endregion
}
enum NameFilterEnum
{
None,
FilterFirstName,
FilterLastName
}
Обратите внимание, что только если он помечен как FilterFirstName, ему потребуется свойство StartCharacter.
Правильно ли указано выше, или я должен отделить фильтры FirstName и LastName, поскольку они требуют разных свойств? Потому что я думаю, что в этом случае необходимо ввести некоторые бизнес-правила при вводе данных в этот класс.
Пожалуйста, совет,
Спасибо