캡슐화(Encapsulation)

특정 목적을 위해 데이터와 데이터를 다루는 메서드를 묶어서 추상화 하는 것

데이터의 번들링(Bundling)

정보 은닉(Information Hiding)

모든 객체지향 언어적 요소를 활용하여 객체에 대한 구체적인 정보를 노출시키지 않도록 하는 기법.

정보 은닉의 종류

  • 객체의 구체적인 타입 은닉(= 상위 타입 캐스팅)
  • 객체의 필드 및 메소드 은닉(= 캡슐화)
  • 구현 은닉(= 인터페이스 및 추상 클래스 기반의 구현)

정보 은닉의 목적

  • 코드가 구체적인 것들(타입, 메소드, 구현)에 의존하는 것을 막아줌으로써 객체 간의 구체적인 결합도를 약화시켜 기능의 교체나 변경이 쉽도록 함.
  • 동일한 타입의 다른 구현 객체들을 교체함으로써 동적 기능 변경이 가능함.
  • 연동할 구체적인 구현이 없는 상태에서도 (인터페이스 만으로) 정확한 연동 코드의 생성이 가능함.

출처: https://effectiveprogramming.tistory.com/entry/객체지향-정보-은닉information-hiding에-대한-올바른-이해

객체지향의 올바른 이해 : 5. 정보 은닉(information hiding)
우리가 어떻게 해서 유연성을 확보할 수 있었는가? 그것은 추상화(Abstraction)에서부터 시작되었다. 추상화를 통해 우리는 여러 요구사항들 중에서 공통점을 찾고, 이 공통점에서 목표한 것과 관련 없는 것들을..