정보관리기술/소프트웨어공학

객체지향 방법론에서 캡슐화(Encapsulation)와 정보은닉(Information Hiding) / ①

아이티신비 2024. 1. 6. 08:30

문제12) 객체지향 방법론에서 캡슐화(Encapsulation)와 정보은닉(Information Hiding)

답)

 

 

1. 객체지향 방법론에서 캡슐화 개요

정의(개념)
  • 객체의 속성(Data Fields)과 행위(메소드, Methods) 를 하나로 묶고, 실제 구현 내용 일부를 감추어 은닉하는 객체지향의 특성
개념도
특징
  • 클래스를 선언하고 그 클래스를 구성하는 객체에 대하여 "public" 선언 시 외부에서 사용가능, "private" 선언 시 불가
  • 메시지 통해 접근
장점
  • 소프트웨어의 유지보수 생산성 증대
  • 재상요성이 높은 소프트웨어 개발
  • 정보은닉으로부터 내부자료에 대한 일관성 유지
Code

 

2. 객체지향 방법론에서 정보은닉 개요

정의(개념)
  • 클래스 내부에서 사용되는 변수(필드)들을 private 이나 protected 등으로 선언해 줌으로, 자기 클래스, 혹은 자식 클래스 외에는 직접적으로 제어를 불가능하게 해주는 성질
개념도
특징
  • 복잡성 제거 : 외부에는 불필요한 내부적으로만 사용되는 부분을 감춰서 복잡성을 줄임
  • Data 보호 : 외부로부터 데이터를 보호하기 위함
장점
  • 정보 손상 미발생 : 권한이 없는 외부의 객체는 접근 불가
  • 독립성 유지 : 데이터가 바뀌어도 다른 객체에 영향을 주지 않음
  • 결함도 감소 : 코드가 타입이나 매소드, 구현 들에 의존하는 것을 막아줌으로써 객체 간의 구체적인 결합도를 약화시킴
  • 유연성 강화 : 결합도 약화되어 기능을 변경하거나 다른 기능으로 교체가 쉬워짐
Code
  • 정보은닉은 접근제어자, 인터페이스 기반 접근, 캡슐화 등을 통해 구현 가능