Являются ли циклические зависимости классов плохими с точки зрения стиля кодирования?
Пример:
В приложении базы данных у нас есть два класса, один инкапсулирующий информацию об одной базе данных (DBInfo
) и один класс, который может создать соединение с базой данных. (ConnFactory
)
DBInfo
имеет метод getConnection
, который использует ConnFactory
для создания соединения. Но для самого ConnFactory
необходим объект DBInfo
.
Вот так: (Любые стили кодирования игнорируются для удобства чтения)
class DBInfo {
String name;
String connectionUrl;
Connection getConnection() {
return ConnFactory.getConnection(this);
}
}
class ConnFactory {
Connection getConnection(DBInfo toWhat) {
return new Connection(toWhat.connectionUrl);
}
}
Мои коллеги утверждают, что это плохая практика, и было бы лучше, если бы было только одно направление зависимостей, а не циклические, как здесь.
Это плохая практика, анти-паттерн или кодовый запах? Есть ли недостатки?