Ce que je fais dans ces cas là, c'est d'avoir une structure de données qui est remplie au fur et à mesures de la lecture du fichier de conf (XML, .rc, .ini, ...).
Une fois que tout a été lu, je tente la construction de l'objet final.
Cela m'évite d'avoir des mutateurs "incrémentaux" dans les classes métier.

Ce que j'appelle "mutateurs incrémentaux", ce sont des mutateurs qui ne modifient qu'une seule propriété à la fois. Un problème se posant s'ils ont des pré-conditions et autres invariants sur plusieurs propriétés. Avec des trucs pareils, l'état intermédiaire d'initialisation peut rompre les invariants.
Je les évite, d'autant qu'en général j'ai très rarement besoin de mutateurs.