Я бы объединил ответы geofflane и jpoh, которые оба хороши.
Принцип единой ответственности важен, но вам необходимо сопоставить преимущества разделения ответственности и абстракции с затратами на удобочитаемость и обслуживание кода. Вам действительно нужно создать 4 новых класса для гидратации объекта из XML?
Эх ... Я бы, вероятно, склонялся к простой фабричной методике реализации шаблона, а также.
Это зависит от применения вашего кода, но я мог бы иметь класс SomeObjectFactory
с методом CreateSomeObject(XmlReader reader)
вместо того, чтобы возложить на него ответственность SomeObject
класса.
public class SomeObjectFactory
{
public static SomeObject CreateSomeObject(XmlReader reader)
{
//hydrate a new SomeObject
}
}
Удачи!