Well, the most common scheme is to have a system-wide configuration in /etc/app_name, and a user can create ~/.app_nameone that overrides the settings in /etc/app_name. You can take another step forward and do it with the help of a three-layer concept: for example, if your application is in /opt/app_name, then you get the default configuration /opt/app_name/conf, and both /etc/app_nameand ~/.app_namecan override it.
IIRC, KDE uses this three-level concept and even has the ability to mark partitions or keys as non-overlapping, so sys-admin can prevent the user from overriding e. d. position of the taskbar. It is probably unnecessary to realize, but perhaps food for thought.
Regardless of whether the configuration is stored in a directory containing several files, or just one file, it does not matter.