LocalStone
Messages postés514Date d'inscriptionmercredi 19 mars 2003StatutMembreDernière intervention 1 mars 2009
-
16 oct. 2008 à 23:46
bizzard4
Messages postés155Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention15 février 2009
-
19 oct. 2008 à 17:52
Salut à tous,
Alors voilà ma question ... Existe-il, d'après vous, des motifs de conception propres au parsing et au building ? Jusque là, j'avais dans toutes mes classes deux méthodes : parse(
FileRead) et build(FileWrite). Mais je sais très bien que c'est loin d'être une solution élégante, vu que tout est fait dans une seule classe ... Et c'est pourquoi je me posais cette question.
(en réalité, mon parseur est en PHP, mais je pense qu'avec le niveau qu'on les bloggeurs en C#, ils sont surement les plus aptes à répondre à ma question )
bizzard4
Messages postés155Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention15 février 2009 19 oct. 2008 à 17:52
Bonjour
Pour ma part cette été j'ai fait beaucoup de parsing/reading et je me suis rendu compte que la façon la plus facile à C# était la sérialisation XML. Mais, celle méthode est applicable à d'autre langage de programmation orienté objet.
En fait, ce que tu dois faire c'est de rendre chacun de tes objets "écrivable" et "lisable". Pour l'écriture c'est plus facile, par exemple ta une classe Maison qui contient des Personne.
Alors pour écrire ton fichier qui contiendra les informations de ses classes du fait.
Maison.Écrire(stream)
et dans cette méthode pour chaque Personne tu fais,
Personne.Écrire(stream)
Pour la lecture, le problème est de savoir quel objet je m'en vais lire pour envoyer à la bonne classe. Moi j'au utiliser la Reflexion car mes node XML est un tag class. Donc je pouvais savoir qu'elle classe le node représentait.
Les classes du .NET de sérialisation XML donne déjà les outils pour le faire.
Donc, chaque objet s'écrit lui même. En C#, la sérialisation XML utilise ce concept pour écrire son fichier XML. Pour le PHP et autre langage tu devra créer ou devra chercher toi même une classe pour le faire.