2009-08-11 6 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 2007会議のオープニングセッションでこれを提案しました。

両方ともツリー構造であり、どちらもインターフェイスを共有できると期待するのが妥当です。もちろん、それぞれに固有の特徴があり、XMLにはないnull値やJSONにはない名前空間などの処理方法を決める必要があります。

しかし、原理的には、2つを区別するために何らかの種類の「スニッファ」を使用することはまともな考えである可能性があります。 XMLファイルhereの開始点とJSONファイルhereの定義が見つかります。

当社のXML Converters製品は、実際にこのアイデアを使用して、解析されるEDIの種類を自動的に判断し、適切なパーサーとリポジトリを呼び出します。