What is coupling?
The following section describes, as succinctly as I could manage, the concept of loose coupling; types of coupling, their impact / cost, and how they pertain to distributed systems / middleware.
Every developer of the last decade knows that coupling in software is bad. It is an anti-pattern, an example of what not to do. Yet if you ask developers what loose coupling is they mostly give examples, not a definition. I myself couldn't create a clear definition until I first wrote on the subject, and as you'll see, it's still not that clear.
Part of what makes coupling so difficult to understand or spot in your own projects is that there are actually many different types of coupling. The following are all examples of coupling:
- Contract/Interface ...