Шаблон проектирования для разбора дерева разметки в объектную модель - PullRequest
1 голос
/ 18 марта 2009

Я в тупике, у меня есть задача, где я должен взять некоторую разметку (формат json, не то, чтобы она действительно имела значение) и проанализировать ее в объектной модели. У нас уже есть модель предметной области, просто нужно пройти через разметку и создать соответствующие объекты.

Это не очень подходит для составного шаблона, так как создаваемые объекты не похожи. Кроме того, разметка не так уж велика и идет только на три уровня, поэтому меня больше интересует организационная структура, чем грубая скорость. Я действительно хотел бы добиться следующего:

  • Избегайте метода монстров с большим количеством вложенных циклов
  • Легко добавлять новые теги / объекты в будущем
  • Чистый легко читаемый код для следующего человека, который должен его изменить

Есть предложения о возможных схемах, которые подойдут для этого? Не стесняйтесь приводить примеры на любом языке, если хотите.

С уважением,

Крис

edit: Вот пример разметки - текст ссылки

Ответы [ 2 ]

2 голосов
/ 18 марта 2009

Хорошо, если вы смотрите на стандартную разметку, такую ​​как JSON или XML, вы можете использовать готовые низкоуровневые анализаторы, которые доступны в большинстве языков программирования, таких как .NET C #, Java, Ruby, C ++ и т.д.

Шаблоны, которые используют такие парсеры, представляют собой комбинацию шаблонов AbstractFactory, Composite, Singleton и Builder.

В качестве примера вы можете обратиться к реализации SAXParser и SAXParser Factory для Java.

Class Diagram of Builder Pattern on WikiPedia
(источник: wikimedia.org )

0 голосов
/ 04 марта 2010

Посмотрите на следующую ссылку - она ​​охватывает некоторые шаблоны проектирования - не все применимы к вам, но я думаю, можно использовать Command, Collecting Parameter и Pluggable Selector.

http://junit.sourceforge.net/doc/cookstour/cookstour.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...