TL;DR
実装に関する知識をインタフェースに出さず、他のモジュールがそれを意識しなくて済むようにすること。
なぜ必要か
情報隠蔽は、複雑さを減らし、深いモジュールを実現するためのテクニックの一つである。
Wikipedia によると、情報隠蔽の主な目的は変更の影響を限定することである。変わりやすい設計上の決定をプログラムの他の部分から切り離しておけば、その決定を変えても、プログラム全体を大きく直さずに済む。この考え方は、David Parnas が 1972 年の論文で初めて示した。
仕組み
モジュールは、変わりやすい情報を安定したインタフェースの裏に隠す。利用する側はインタフェースだけを通してやり取りするので、実装を変えたり差し替えたりしても影響を受けない。オブジェクト指向言語では、private な変数などの機能でこれを実現することが多い。
例
Wikipedia では、3 次元の点の例が挙げられている。点を 3 つの浮動小数点数の変数で持っていたのを、後で要素数 3 の配列に変えたとする。情報隠蔽を意識して設計していれば、この変更はプログラムの他の部分に影響しない。
注意点
情報隠蔽とカプセル化は同じ意味で使われることが多いが、区別する立場もある。Wikipedia によると、情報隠蔽が原則で、カプセル化はそれを実現する手法だとする見方がある。