Я борюсь с тем, чтобы избежать циклических зависимостей. Я знаю, что мне нужно скрыть реализацию с помощью интерфейсов, но как мне обрабатывать ситуацию с двумя сборками, где каждый из них должен либо создавать классы из другого, либо вызвать статический метод?Циклические зависимости - опять же
Edit:
Я понимаю, это может быть исправлено с помощью только одного узла. У нас есть более одного по следующей причине:
- наша «система» состоит из нескольких компонентов. Клиент может иметь только один компонент или более - так что мы сделали, мы создали разные сборки для разных компонентов. Это имеет смысл - зачем вам разворачивать то, что вам не нужно, разве это не трата памяти?
- То, что было общим для большего количества компонентов, в основном вспомогательных классов, перешло на другую сборку - снова не всем компонентам нужны все вспомогательные классы, поэтому есть больше сборок
- Однако эти два приложения могут разговаривать друг с другом - система для врачей отправляет запросы в систему для медсестер, запросы возвращаются и т. д. - и вот где фактическая проблема
Наличие двух компонентов, говорящих друг с другом, на самом деле является лишь одной из ситуаций, которые мы имели циклическая зависимость конфликтует раньше. Это случается время от времени, и когда это происходит, нам нужно выяснить, как его решить - переместите несколько классов вокруг - и иногда нам нужно добавить новую сборку.
Теперь у нас есть 8-10 сборок, и похоже, что чем больше у вас есть, тем быстрее они добавляются :) - например, мы добавили универсальную функцию, которая использует пользовательские атрибуты, - поэтому мы добавили еще одну сборку только для атрибут - на случай, если мы не столкнемся в конфликте в будущем
Это путь? Я действительно чувствую, что мы делаем что-то принципиально неправильное :)
Я очень ценю ваш вход.
Не уверен, что вы объяснили это достаточно хорошо. Возможно, вам стоит просто использовать одну сборку. –
Пожалуйста, отредактируйте вопрос, чтобы включить контекст домена и/или некоторый пример кода. –