2009-08-11 119 views
1

我正在考虑实现一个解析器框架,该解析器框架将利用一组接口使其易于适应不同类型的数据格式。我想围绕我的控制器对象与这个解析器进行交互的方式创建结构,并且提出了以下简单结构。我希望社会能提供什么优势/劣势是这种方式实现的任何意见或想法:多用途解析器

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

实际上,我在JSON和XML XML会议的开幕会议上提出了这个问题。

两者都是树结构,期望他们可以共享一个接口是合理的。当然,每种方法都有它的特性,并且您需要决定如何处理空值(XML没有)以及名称空间(JSON不具有)。

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

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