1. 캡슐화
캡슐화는 객체의 속성(Variable)을 보호하기 위해서 사용한다.
객체의 캡슐화는 현실 세계에서도 볼 수 있습니다. 컴퓨터 본체안에 수 많은 부품이 있지만, 전원을 켜기 위해서는 메인보드에서 전기 신호를 직접 주는것이 아닌, 외부 케이스에 있는 전원 버튼을 통해서 상태 속성을 on/off 하도록 변경 합니다.
Method 설계
- 속성이 선언되었으나, 이의 상태를 변경하는 Method가 없다면, 잘 못 선언된 속성이다.
즉, 자신이 가지고 있는 속성에 대해서는 해당 상태를 변경하는 기능을 제공해야한다.
- 실물 객체가 가진 기능을 모두 제공해야한다,
예) 자동차의 렌탈, 반납, 주행거리 계산 등등
- 각각의 Method는 서로 관련성이 있어야한다.
차량의 렌탈/반납, 자동차등록증 등록/해지 등 각각의 속성에 삳애되는 기능을 제공해야 한다.
- 객체안의 Method는 객체안의 속성을 처리해야 만하며, 다른 객체를 전달받아 해당 다른 객체에 정의된 속성을 직접 처리하면 안된다. 단,Method의 실행에 필요한 값들은 객체의 형태가아닌 매개변수의 형태로 전달되면 처리 할 수 있다.
- Getter / Setter Method
외부에서 내부 속성(Variable)에 직접 접근하는 것이 아닌 Getter/Setter Method를 통해서 접근하도록 적용
- CRUD Method
데이터 처리를 위한 기본적인 CRUD Method를 제공
- Business Logic Method
비즈니스 로직 처리를 위한 Method제공
- 객체의 생명주기 처리 Method
흔히 destroy(), disconnect()등 quit()등 소멸에 대한 method
-객체의 영구성 관리 Method
영구성(유효성) 속성에 대한 변경이 필요한 경우 외부에서는 접근이 불가능 하도록 private선언 하며 내부의 다른 Method를 통해서 사용되도록 한다.
Method의 속성은 1개만 속 할 필요는 없으며, 여러 속성에 해당 될 수 있다.
장점
- 객체지향의 패러다임중 하나인 추상화를 제공
실제로 Method가 어떻게 동작하는지는 외부에서 이해할 필요가 없으며, 이를 다순 호출만으로 해당 기능을 실행할 수 있고, 이를 통해서 객체 단위로 프로그램 설계가 가능하다.
- 재사용성 향상
객체에 관련된 속성 및 Method는 모두 캡슐화의 형태로 제공됨으로, 객체의 모듈성과 응집도가 높아진다, 이를 통하여 재사용성이 높아진다.
만일 절차적 프로그래밍에서, Method를 재사용한다면, 함수가 참조하고있는 전역변수 및 내부에서 호출하는 Method가 미치는 영향을 모두 체크해야하나, 객체지향의 경우 단일 객체에만 영향을 주기에 재사용성이 높다.
- 유지보수의 효율성이 향상 된다.
무결성
보통의 캡슐화 코딩이라고 한다면, 주로 변수는 private로 선언하고, Method를 public으로 선언하는 형태를 많이 가지게 됩니다. 이는 객체의 무결성을 위함 입니다. Getter/Setter를 제외하고는 public method는 입력된 매개변수를 Validation을 한 후에 실행하는 것을 기본으로 합니다. Validation을 통하여, 객체의 값을 바꾸거나, 값에 대한 유효성을 가질 수 있습니다.
| POJO JAVA (0) | 2022.07.28 |
|---|---|
| 개방 폐쇄 원칙, 리스코프 치환 원칙, 의존 역전 원칙 (0) | 2022.07.28 |
| 응집도와 결합도 (0) | 2022.07.28 |
| 객체 지향의 4대 특성 - 2. 상속, 3. 다형성, 4. 추상화 (0) | 2022.07.27 |
| 객체의 3요소 // 물리 객체와 개념 객체 (0) | 2022.07.27 |