Соглашение по конфигурации идет против слабой связи?
Кажется, что многие программисты соблюдают это соглашение о конфигурации. В контексте IoC это означает использование API вместо конфигурации XML.
Как вы должны сохранять идею слабой связи за DI/IoC, когда вам нужно ссылаться на DLL, содержащую конкретные реализации абстрактных интерфейсов / классов, чтобы использовать соглашение о конфигурации?
2 ответа
Конфигурирование через API кода не является "соглашением". Это "конфигурация".
Соглашение о конфигурации означает, например, что конкретная прикладная среда (такая как Rails или CodeIgniter) может потребовать, чтобы определенные типы кода были размещены в определенных каталогах. Вы не обязаны сообщать платформе приложения, где находятся эти файлы, через конфигурацию.
Это означает, что вы должны сбалансировать их; не попадайтесь ни в ловушку ни / или мышления.
С другой стороны, если вам нужны файлы конфигурации, не думайте, что они должны быть XML. XML является относительно тяжелым представлением; JSON, YAML и т. Д. Широко доступны и более просты в использовании для большинства типов файлов конфигурации.