Хорошо описано у Троелсона в "С# 5.0 и платформа .NET 4.5". Там в главе 21 есть параграф "Абстрагирование поставщиков данных с помощью интерфесов". Там как раз о фабриках рассказывается, вынесении строки подключения в XML-конфиг и т.п. Советую заглянуть.
А вообще, DAL можно реализовать отдельной библиотекой, которая будет торчать наружу через интерфейсы, да базовые классы. Ее отдельно можно будет спокойно перекомпилять без боли.