This topic might be better suited for
Software Engineering. In regards to the interface: the lower coupling comes from the owning side: normally, the module that own
A
also owns
IB
. Thus, a change to
B
is - in best cases, invisible to
A
and in worst case breaks the interface-contract, thus leading to a compiler error. It is true, however, that a change to
IB
would influence all classes implementing it. This is, as far as my guess is concerned, one of the primary reasons default methods were introduced. —
Turing85 40 secs ago