Du beschreibst einen Data Abstraction Layer (DAL). Den würde ich als Klasse realisieren, Entwurfsmuster 1 und 2. Du brauchst Scnittstellen, die zwischen einer zentralen Datenhaltung und verteilten Daten vermitteln müssen, das ist Sache des DAL.
Ergänzung Klassenhierarchie:
DAL-Baseclass: ORM, sitzt auf einer DB als Data-Layer
Subklassen:
ORM::XML, ORM::INI
Beispiel "ORM::XML::branchin": Methode zum Einbau eines aus XML kommenden Verzeichniszweiges in die zentrale Konfiguration.
Die Subklassen beschreiben die Umsetzung/Einbau von XML, INI in die Datenstruktur des ORM. Die Application arbeitet mit einer Datenstruktur oder mit Methoden, die von Baseclass ORM bereitgestellt werden.
Die Application hat Schnittstellen zu XML, INI, diese Schnittstellen bedienen sich der Methoden von ORM::XML, ORM::INI usw.
Architektur meines CMS, stellt die Position des DAL als Tie-Klasse dar: