static void Main(string[] args) { Serializer serializer; String serializationType = Console.ReadLine(), serializableText = Console.ReadLine(); //todo: есть такой паттерн - цепочка отвественностей. смысл - инкапсулировать выбор сериализации внутри класса сериализации //todo: т.е. вместо свитча в мейне, научить сериализатор отвечать на вопрос, а моржет ли он работать с таким типом сериалзцции switch (serializationType) { case "Json": serializer = new JSONSerializer(); break; case "Xml": serializer = new XMLSerializer(); break; default: return; } Console.WriteLine(doMathWithSrlz(serializer, serializableText)); }
static void Main(string[] args) { String serializationType = Console.ReadLine(); Serializer serializer; switch (serializationType) { case "Json": serializer = new JSONSerializer(); break; case "Xml": serializer = new XMLSerializer(); break; default: return; } Input input = serializer.deserialize <Input>(Console.ReadLine()); Output output = mathOperations(input); Console.WriteLine(serializer.serialize <Output>(output)); }