Non, vous ne devez pas envoyer le fichier XML au constructeur, car vous couplez le modèle avec la logique déserilisante. Vous devez créer une classe qui gère la déserlisation pour vous et renvoyer une instance. Pourquoi cela est important peut-être pas clair. Mais imaginez à l'avenir que vous puissiez avoir les données provenant d'une base de données, vous ne voulez pas passer la connexion de base de données au constructeur, n'est-ce pas? Au lieu de cela, vous pouvez créer une classe différente qui utilise des bases de données pour générer une instance de votre classe.
Voici quelques bonne lecture: (ou ont setters publics)
http://en.wikipedia.org/wiki/Builder_pattern
http://en.wikipedia.org/wiki/Immutable_object
Mais Si je crée une classe désérialiseur, la plupart de mes attributs de classe devrait devenir public. Merci. – poiuytrez
Vous devriez viser à vous rendre immuable pour un meilleur design. Si vous avez une énorme liste de champs, pensez à utiliser un modèle de générateur. Enfin, si vous pouvez emballer les choses, pensez peut-être à utiliser des champs protégés pour pouvoir les définir directement. –
Merci! Je pense que le modèle Builder est parfait pour moi. – poiuytrez