"캡슐화"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 17개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;encapsulation  
;encapsulation  
;캡슐화
;캡슐화, 인캡슐레이션
*내부는 숨기고 인터페이스만 제공
* 복잡한 내부 구조를 숨기는 것
*[[인스턴스 변수]]를 private으로 선언
* 내부는 숨기고 인터페이스만 제공<ref>정보 은닉(information hiding)</ref>하는 것
:외부에서 접근할 필요가 있을 때는 게터, 세터 메소드를 이용하도록
* 어떻게 동작하는지에 대한 세부사항을 알 필요 없이 간단히 사용할 수 있도록 소프트웨어를 설계, 작성, 기술하는 것
*장점: 외부의 간섭을 차단. 유지보수가 용이함([[모듈성]])<ref>어떤 모듈이 다른 모듈의 내부를 직접 간섭하도록 만든 경우, 하나의 모듈을 변경할 때 영향받는 모듈이 많아져서 변경이 어려워진다.</ref>
* 메소드 혹은 클래스의 구현 상세를 숨겨야 한다.
* [[인스턴스 변수]]를 private으로 선언한다.
:외부에서 접근할 필요가 있을 때는 getter, setter 메소드를 이용하도록 한다.
* 모든 메소드/변수/클래스를 private으로 시작한다.
:상속이 필요한 경우에만 protected로 변경한다.
:처음부터 public으로 만들면 나중에 변경하기 어렵다. (누가 사용하고 있는지 알기 어렵기 때문에)
* 장점: 외부의 간섭을 차단. 유지보수가 용이함([[모듈성]])<ref>어떤 모듈이 다른 모듈의 내부를 직접 간섭하도록 만든 경우, 하나의 모듈을 변경할 때 영향받는 모듈이 많아져서 변경이 어려워진다.</ref>


==같이 보기==
==같이 보기==
*[[객체지향]]
{{z컬럼3|
*[[메소드]]
* [[캡슐]]
*[[모듈성]]
* [[위임]]
*[[위임]]
* [[상속]]
*[[느슨한 결합]]
* [[메소드]]
*[[상속]]
* [[모듈성]]
* [[추상화]]
* [[객체지향]]
* [[느슨한 결합]]
* [[파사드 패턴]]
* [[캡슐화 스멜]]
}}


==주석==
==참고==
<references/>
* {{위키백과|캡슐화}}
 
* {{영어위키백과|Encapsulation (computer programming)}}
==참고 자료==
* http://www.terms.co.kr/encapsulation.htm
*http://www.terms.co.kr/encapsulation.htm
*http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)


[[분류: 캡슐화]]
[[분류: 객체지향]]
[[분류: 객체지향]]

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 }}