캡슐화

Jmnote (토론 | 기여)님의 2022년 7월 12일 (화) 14:14 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

encapsulation
캡슐화, 인캡슐레이션
  • 복잡한 내부 구조를 숨기는 것
  • 내부는 숨기고 인터페이스만 제공[1]하는 것
  • 어떻게 동작하는지에 대한 세부사항을 알 필요 없이 간단히 사용할 수 있도록 소프트웨어를 설계, 작성, 기술하는 것
  • 메소드 혹은 클래스의 구현 상세를 숨겨야 한다.
  • 인스턴스 변수를 private으로 선언한다.
외부에서 접근할 필요가 있을 때는 getter, setter 메소드를 이용하도록 한다.
  • 모든 메소드/변수/클래스를 private으로 시작한다.
상속이 필요한 경우에만 protected로 변경한다.
처음부터 public으로 만들면 나중에 변경하기 어렵다. (누가 사용하고 있는지 알기 어렵기 때문에)
  • 장점: 외부의 간섭을 차단. 유지보수가 용이함(모듈성)[2]

2 같이 보기[ | ]

3 참고[ | ]

  1. 정보 은닉(information hiding)
  2. 어떤 모듈이 다른 모듈의 내부를 직접 간섭하도록 만든 경우, 하나의 모듈을 변경할 때 영향받는 모듈이 많아져서 변경이 어려워진다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}