title: Separation of concern vs encapsulation vs loose coupling vs spaghetti code
body: <p>What's the exact meaning and relation between these terms. It looks like many people confuse them a lot.</p>
  
  <p>My idea is that separation of concern is what you get with encapsulation.</p>
  
  <p>Loose coupling is in some blog confused with separation of concerns, wheras in other is just a separation as components that do not know each other.</p>
  
  <p>Spaghetti code is tangled code. So not following the 3 above concepts can lead to spaghetti code.</p>
  
  <p>Is it correct?</p>