Jakie wzorce projektowe można zastosować do problemu z ustawieniami konfiguracji?

W dużych i złożonych programach zarządzanie konfigurowalnymi ustawieniami staje się poważnym problemem. Dwa podejścia do problemu, które widziałem:

Czy każdy składnik w systemie ładuje własną konfigurację z plików konfiguracyjnych lub ustawień rejestru.mieć klasę programu ładującego ustawienia, która ładuje wszystkie konfigurowalne ustawienia systemowe i każe każdemu komponentowi wysłać zapytanie o ustawienia do modułu ładującego ustawienia.

Te podejścia są dla mnie złe.

Czy istnieją jakieś wzorce projektowe, które mogłyby zostać wykorzystane do uproszczenia problemu? Może coś, co wykorzysta technikę wstrzykiwania zależności.