객체 래퍼
객체 래퍼는 다른 코드를 둘러싸는 객체지향 코드
객체지향 프로그래밍과 절차적 프로그래밍의 차이
- 객체지향 설계에서 속성과 행위는 한 가지 객체 안에 모두 포함
- 절차적 설계나 구조적 설계에서는 일반적으로 분리
데이터 은닉 (캡슐화)
속성이나 메서드에 접근하지 못하게 제한하는 일
객체를 사용할 때 장점
- 데이터가 패키지의 일부이며, 코드와 분리되어 있지 않다.
[UML] 클래스 다이어그램 작성법 - Heee's Development Blog
캡슬화 및 데이터 은닉
- 객체지향 설계에서 객체는 여타 객체와 상호 작용하는 데 필요한 인터페이스만 나타내야 함.
숫자의 제곱을 계산하는 객체라면 계산 결과를 얻을 수 있게 하는 인터페이스를 제공해야 함. 그러나 제곱을 계산하는 데 사용된 내부 속성 및 알고리즘을 용청 객체에 제공할 필요는 없음.
인터페이스
- 대부분의 객체지향 언어에서 인터페이스의 일부인 메서드들은
public
으로 지정함
- 속성은 인터페이스의 일부가 아님(데이터 은닉을 위해 private으로 선언하면)
구현부
- 구현부의 코드는 인터페이스에 소속되지 않고, 사용자가 알 수 없으며, 코드를 변경해도 사용자의 코드에 영향을 끼치지 않아야함.