多用途分析器

时间:2009-08-11 19:19:26

标签: inheritance actionscript interface parsing

我正在考虑实现一个解析器框架,该框架将利用一组接口使其易于适应不同类型的数据格式。我想围绕我的控制器对象与此解析器交互的方式创建结构,并提出以下简单结构。我希望社区可以就这种方式实施的优点/缺点提出任何意见或想法:

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 个答案:

答案 0 :(得分:1)

我实际上在XML 2007大会的JSON和XML开幕会议上提出了这个建议。

两者都是树结构,并且期望它们可以共享接口是合理的。当然,每个都有其独特之处,你需要决定如何处理像XML这样的东西,以及JSON没有的名称空间。

但原则上,它可能是一个不错的主意,使用某种“嗅探器”来区分这两者。您可以找到XML文件here的开头和JSON文件here的定义。

我们的XML Converters产品实际上使用这个想法来自动确定要解析的EDI类型,然后调用相应的解析器和存储库。