2009-08-11 324 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的類型,然後調用適當的解析器和存儲庫。