Существует мнение, что в контейнере IOC объект не должен ссылаться на другую зависимость сам по себе, контейнер IOC поможет внедрить зависимость в объект вызывающей стороны, и вызывающей стороне даже не нужно знать, кто такая зависимость, какая деталь у него.
Мой вопрос: код написан человеком, он или она должен знать все детали звонящего и зависимости. мы пишем:
class A:
void foo() {
B.bar();
}
тогда пишем:
class B:
void bar() {
doSomething();
}
мы определенно знаем, что в классе B есть функция, сформированная как bar (), она называется bar и не имеет аргументов, и мы точно знаем, что делает функция или что она будет возвращать, как мы не могли ничего не знать о зависимости?