정보은닉
정보 은닉(Information Hiding)이란 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용하는 것으로, 클래스 외부에서 특정 정보에 접근을 막는다는 의미이다. [1]
개요
목적
정보 은닉(Information hiding)의 목적 첫번째, 기능의 교체나 변경이 쉽도록 한다. 코드가 구체적인 것들 예를들면 타입이나 메소드, 구현등에 의존하는 것을 막아줌으로써 객체 간의 구체적인 결합도를 약화시킨다. 결합도가 약화되면 기능을 변경하거나 다른 기능으로 교체하는게 쉬워진다. 두번째, 동일한 타입의 다른 구현 객체들을 교체함으로써 동적 기능 변경이 가능하다. 세번째, 연동할 구체적인 구현이 없는 상태 즉, 인터페이스만으로도 정확한 연동 코드의 생성이 가능하다. [2]
특징
장단점
- 장점
캡슐화를 통한 정보은닉(Information hiding)의 장점은 첫번째, 객체에 포함된 정보의 손상과 오용을 막을 수 있다. 정보은닉은 단어 자체로 정보를 숨기는 것이기 때문에 권한이 없는 외부의 객체가 접근할 수 없기 때문에 정보 손상이 발생하지않는다. 두번째, 객체의 사용방법은 바뀌지않는다. 정보은닉된 객체의 인터페이스만으로 접근하기 때문에 내부 조작 방법이 바뀌어도 접근방법이 변경되진않는다. 세번째, 데이터가 바뀌어도 다른 객체에 영향을 주지않아서 독립성이 유지된다. 네번째, 객체의 이식성이 좋다. 객체의 정보에 직접적인 접근이 아닌, 연산만을 통한 접근이다. 그렇기에 연산으로 출력된 결과물만 사용하므로써 객체의 이식성이 높아진다. 다섯번째, 객체를 시스템 구성에서 부품처럼 사용할 수 있다. 연산으로 인해 출력된 결과물만 사용하기 때문에 객체를 부품화 할 수 있다. 부품화된 객체를 새로운 시스템 구성에서 부품처럼 사용이 가능하다. [3]
- 단점
캡슐화와의 차이점
각주
- ↑ 〈JAVA PROGRAMMING-객체지향 특징(캡슐화, 정보은닉)〉, 《개인블로그》, 2014-05-01
- ↑ 〈객체지향의 올바른 이해: 5. 정보 은닉(information hiding)〉, 《개인사이트》, 2016-09-24
- ↑ 〈[Java자바객체지향개념 캡슐화,정보은닉]〉, 《개인사이트》, 2014-05-01
참고자료
- 개발이 하고 싶어요, 〈오버로딩(Overloading) 오버라이딩(Overriding)〉, 2013-12-09