Шаблон проектирования для заполнения объекта XML - PullRequest
5 голосов
/ 12 ноября 2010

У меня есть объект для заполнения xml.Я думаю, что я мог бы использовать конструктор, который принимает этот XML для создания объекта.Но есть ли лучший шаблон дизайна для этого?Это к объекту, чтобы обрабатывать все разбор XML?

Спасибо!

Ответы [ 3 ]

7 голосов
/ 12 ноября 2010

Нет, вы не должны отправлять xml в конструктор, потому что вы связываете модель с логикой опустошения.Вы должны создать класс, который обрабатывает десерлизацию для вас и вернуть экземпляр.Почему это важно, может быть неясно.Но представьте, что в будущем у вас могут быть данные, поступающие из базы данных, вы не хотите передавать соединение с базой данных конструктору, не так ли?Вместо этого вы можете создать другой класс, который использует базы данных для создания экземпляра вашего класса.

Вот некоторые хорошие чтения:

http://en.wikipedia.org/wiki/Builder_pattern

http://en.wikipedia.org/wiki/Immutable_object

3 голосов
/ 12 ноября 2010

Самый простой подход - позволить XmlSerializer сделать это за вас.Просто украсьте его (при необходимости), чтобы он знал, как отобразить xml, и вызовите команду Deserialize.

2 голосов
/ 12 ноября 2010

если вы получаете XML в виде строки, которая требует специального анализа, вы можете, я думаю, создать менеджер / фабрику для создания вашего объекта:

           var myObject = MyObjectCustomXmlSerializer.Deserialize(xmlString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...