У меня возникли некоторые затруднения с пониманием того, как я буду проектировать класс.
Я хочу иметь возможность вывести n значений полей System в отчет вместе с настраиваемыми полями.
Мне нужен простой метод интерфейса:
I Collection<Field> GetFieldDefinitions();
Внутренне это должно получить все поля, которые мне нужно показать в отчете.
СекундаМетод также будет возвращать поле и его значения:
ICollection<Field> GetFieldDefinitionsWithValues(T src);
T - это источник, из которого будет заполняться информация для каждого поля, например, если я передам Company, определение поля, если оно содержит CompanyName, Iвыполнит поиск в таблице Company, извлечет информацию и добавит ее в поле.
public Class SystemFieldCompany
{
IDictionary<string,Field> list;
private readonly ValidationEngine _val;
public SystemFieldCompany(ValidationEngine val)
{
_val = val;
list = new Dictionary<string,Field>();
}
public ICollection<Field> GetFields()
{
list.add("id",new Field{name = "id", value = "5"});
list.add("nameofcompany",new Field{name = "nameofcompany", value = "super guys"});
return list.Values;
}
//pass in model object with values on it, set up fields, then pass back all fields
ICollection<Field> GetFieldsWithValues(T object);
}
Должен ли этот класс выше быть конкретным классом?Например, var fields = new FieldClass (). GetFields ();
или я должен использовать композицию?Как я могу сделать это через интерфейс?