Должна ли инфраструктурная библиотека слабо соединяться с другим инфраструктурным уровнем?
Есть ли какой-нибудь запах, связанный с тем, что библиотека File.IO слабо связана с библиотекой журналов? Или их следует хранить отдельно и объединять только в службах приложений?
2 ответа
Слабая связь полезна при любых обстоятельствах, но вы также должны знать о дополнительной сложности, которую она может создать. Если вы примените принцип инверсии зависимостей (прочитайте книгу Роберта К. Мартина о гибких принципах для отличного обсуждения), вы можете использовать библиотеку File.IO для определения абстракции (например, интерфейса), которая необходима для ведения журнала. Затем вы можете предоставить реализацию этой абстракции, используя предпочитаемую библиотеку журналов. Чтобы было ясно, это не то же самое, что использование абстракции, предлагаемой библиотекой журналирования в библиотеке File.IO. Тогда вы все равно будете связывать их вместе.
Слабая связь - бессмысленный термин без высокой сплоченности. В вашем домене вы входите в домены специфические условия. Взгляните на блог Исайи Перумаллы, особенно на тесты, основанные на дизайне, используя насмешки