2009-08-11 7 views
1

Ich denke darüber nach, ein Parser-Framework zu implementieren, das eine Reihe von Schnittstellen verwendet, um die Anpassung an verschiedene Arten von Datenformaten zu erleichtern. Ich möchte eine Struktur um die Art, wie mein Controller-Objekt mit diesem Parser interagiert, erstellen und habe die folgende einfache Struktur entwickelt. Ich hatte gehofft, dass die Gemeinschaft keine Kommentare oder Gedanken liefern könnten, was die Vorteile/Nachteile sind auf diese Weise der Umsetzung:Mehrzweck-Parser

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. Gibt es Möglichkeiten, die Eigenschaften dieser Schnittstellen zu erweitern?
  2. Gibt es grelle Einschränkungen für diese Schnittstellen?
  3. Gibt es Nachteile bei der Verwendung der Schnittstellenvererbung?

Antwort

1

ich dies tatsächlich bei der Eröffnungssitzung der XML-Konferenz 2007 für JSON und XML vorgeschlagen.

Beide sind Baumstrukturen, und es ist vernünftig zu erwarten, dass sie eine Schnittstelle teilen könnten. Natürlich hat jedes seine Besonderheiten, und Sie müssen entscheiden, wie Sie Dinge wie NULL-Werte, die XML nicht hat, und Namespaces, die JSON nicht hat, behandeln wollen.

Aber im Prinzip könnte es eine gute Idee sein, eine Art "Schnüffler" zu verwenden, um die beiden zu unterscheiden. Sie finden die Definitionen für den Start einer XML-Datei here und einer JSON-Datei here.

Unser Produkt XML Converters verwendet diese Idee, um automatisch den zu analysierenden EDI-Typ zu bestimmen, und ruft dann den entsprechenden Parser und das entsprechende Repository auf.