Does Loose Coupling Always Result in Code Duplication?
Java Champion Adam Bien asks "Does Loose Coupling Always Result in Code Duplication?":
Per its very nature - it has to. Loose coupling aims for making functional units independent of each other. This is only possible with the introduction of a level of indirection.
The thinnest possible layer is an ordinary Java interface, the heaviest one - a WSDL. The mechanics of decoupling are simple as well: a neutral contract is the boundary between the provider and the consumer...