По разным причинам я хотел бы начать использовать более неизменные типы в дизайнах. На данный момент я работаю с проектом, который имеет существующий класс следующим образом:
public class IssueRecord
{
// The real class has more readable names :)
public string Foo { get; set; }
public string Bar { get; set; }
public int Baz { get; set; }
public string Prop { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
public string Prop4 { get; set; }
public string Prop5 { get; set; }
public string Prop6 { get; set; }
public string Prop7 { get; set; }
public string Prop8 { get; set; }
public string Prop9 { get; set; }
public string PropA { get; set; }
}
Этот класс представляет собой некоторый формат на диске, который действительно имеет это много свойств, поэтому рефакторинг его на более мелкие биты практически не может быть и речи на данный момент.
Означает ли это, что конструктор этого класса действительно должен иметь 13 параметров в неизменяемом дизайне? Если нет, то какие шаги я могу предпринять, чтобы уменьшить количество параметров, принятых в конструкторе, если бы я сделал этот проект неизменным?