Это может быть немного субъективно, но я хотел бы получить информацию о моей текущей ситуации. У меня есть класс, который будет использоваться для сериализации/десериализации объекта.Сохранение кода на одном уровне при работе со статическими методами
public class MyClass
{
public static string ToXmlString(MyClass c) { /*...*/ }
public static MyClass FromXmlString(string xml) { /*...*/ }
}
Мне нравится этот подход, потому что он поддерживает две функции на одном уровне. Однако моя цель - избегать использования статических методов (когда это возможно). Он также чувствует, что я могу вилоровать SRP, но главная цель этого объекта заключается в том, что он может быть сериализован/десериализован из строки xml.
Любые мысли об использовании статических методов в этой ситуации? Должен ли я просто сделать ToXmlString
нестатический, но оставить FromXmlString
статическим? Должен ли я создать новый класс, который будет обрабатывать только сериализацию MyClass?
EDIT:
Класс, который я здесь обсуждение является простым объектом передачи. Он используется для сохранения/восстановления значений из инструмента thrid party.
Спасибо!
Зачем статично? –
Я избегаю статики по ряду мелких причин. 1) Легче перейти на IoC при необходимости 2) Разверните объекты через наследование 3) Избегайте деградации классов Бога с помощью методов OO ... –