Вы должны начать с простого, но в разумных пределах. Общие принципы разработки программного обеспечения должны быть вашим руководством при разработке приложения. В этом случае я сразу же подумал, что, имея один глобальный класс AppSettings, вы будете связывать свой бизнес и уровень доступа к данным с этим классом. Сейчас это может показаться разумным, но как быть, когда у вас есть 50 различных настроек, и только 20 из них применяются к уровню доступа к данным? Что если в будущем ваш бизнес-уровень должен загрузить настройки из другого источника, чем DAL? Вдобавок ко всему, в вашем текущем дизайне вы соединяете оба слоя с глобальным синглтоном. Как правило, это не очень хорошая идея.
Даже в небольших приложениях я бы рекомендовал иметь разные объекты настроек для каждого слоя. В моем дизайне это будет похоже на ваш BLLAppSettings. Он инкапсулирует источник настроек, в данном случае это ваш глобальный класс AppSettings. Однако мой дизайн будет отличаться тем, что BLLAppSettings будет конкретным экземпляром интерфейса, определенного на уровне BLL, который должен быть передан на уровень BLL с помощью конструктора, фабрики или внедрения зависимости. Подобный класс, DALAppSettings был бы необходим в моем рекомендованном дизайне.
Таким образом, ваши BLL и DAL не связаны с глобальными наборами приложений, определенными на уровне представления. Детали реализации BLLAppSettings и DALAppSettings могут изменяться независимо при необходимости, но в настоящее время могут оставаться внутренне привязанными к вашему глобальному классу AppSettings.