반응형
정보 은닉을 활용한 캡슐화
- 꼭 필요한 정보와 기능만 외부에 오픈함
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현하게 함
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
- 어떤 정보를 공개하고 숨길지 정하는 것이 중요함
Getter / Setter Method
외부에서 내부 속성(Vaiable)에 직접 접근하는 것이 아닌 Getter/Setter Method를 통해서 접근하도록 적용
CRUD Method
데이터 처리를 위한 기본적인 CRUD Method를 제공
Business Logic Method
비즈니스 로직 처리를 위한 Method를 제공
객체의 생명 주기 처리 Method
흔히 destory(), disconnect() 등 quit() 등 소멸에 대한 method
객체의 영구성 관리 Method
영구성(유효성) 속성에 대한 변경이 필요한 경우 외부에서는 접근이 불가능 하도록 private로 선언하며, 내부의 다른 Method를 통해서 사용 되도록 한다.
Method의 속성은 반드시 1개에 속할 필요는 없으며, 여러 속성에 해당 될 수 있다.
장점
- 객체지향의 패러다임 중 하나인 추상화를 제공
- 재 사용성 향상
- 유지보수의 효율성이 향상
- 무결성
레포트 만들기 예제
캡슐화할 클래스
package ch11;
public class MakeReport {
StringBuffer buffer = new StringBuffer(); //스트링을 쭉 연결하기 위해 선언
private String line = "==========================================\n";
private String title = " 이름\t 주소\t\t 전화번호 \n";
private void makeHeaer() {
buffer.append(line);
buffer.append(title);
buffer.append(line);
}
private void generateBody() {
buffer.append("James \t");
buffer.append("Seoul Korea \t");
buffer.append("010-2222-3333 \n");
buffer.append("Tomas \t");
buffer.append("NewYork US \t");
buffer.append("010-7777-0987 \n");
}
private void makeFooter() {
buffer.append(line);
}
public String getReader() {
makeHeaer();
generateBody();
makeFooter();
return buffer.toString();
}
}
실행할 클래스
package ch11;
public class MakeReportTest {
public static void main(String[] args) {
MakeReport builder = new MakeReport();
String report = builder.getReader();
System.out.println(report);
}
}
실행 결과
반응형
'언어 > JAVA' 카테고리의 다른 글
객체 간의 협력 (collabration) (0) | 2021.04.14 |
---|---|
객체 자신을 가리키는 this (0) | 2021.04.14 |
접근 제어 지시자, get() / set() 메서드, 정보은닉 (0) | 2021.04.13 |
생성자 오버로딩 (0) | 2021.04.13 |
생성자 (0) | 2021.04.12 |