Многоцелевой парсер - PullRequest
1 голос
/ 11 августа 2009

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

package
{

     public interface IParser
     {   

             function loadAd(adURL:String):void;
             function parseAd():Object;
     }   
}




package
{

     public interface IXMLParser implements IParser
     {   

             function setAdData(adData:XMLNode):void;
     }   
}




package
{

    public interface IJSONParser implements IParser
    {   

            function setAdData(adData:JSON):void;
    }   
}
  1. Есть ли способы расширить возможности этих интерфейсов?
  2. Есть ли явные ограничения для этих интерфейсов?
  3. Есть ли недостатки в использовании наследования интерфейса?

1 Ответ

1 голос
/ 11 августа 2009

Я действительно предложил это на открытии конференции XML 2007 для JSON и XML.

Обе являются древовидными структурами, и разумно ожидать, что они могут иметь общий интерфейс. Конечно, у каждого есть свои особенности, и вам нужно решить, как вы хотите обрабатывать такие вещи, как нулевые значения, которых нет в XML, и пространства имен, которых нет в JSON.

Но, в принципе, это может быть неплохой идеей, если использовать какой-то «анализатор» для различения. Вы можете найти определения начала файла XML здесь и файла JSON здесь .

Наш продукт XML Converter фактически использует эту идею для автоматического определения типа анализируемого EDI, а затем вызывает соответствующий анализатор и репозиторий.

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