Also know as ‘Principle of least knowledge’.
“It means a object should only know about objects that it can directly act upon”. Following this principle will result in a modular code that is easily testable.
A really nice analogy for this principle is from The Clean Code Talks – Don’t Look For Things! by Misko Hevery.
You are in a store and the item you are purchasing costs 10 dollars.
Will you give the clerk 10 dollars ? or Will you give the clerk your wallet and let him retrieve the 10 dollars?
Of-course a sane person will give the clerk 10 dollars. Same principle applies when creating the objects. You should only pass into the object that is relevant and that it can directly act upon.