1. 모듈 사용자는 public만 사용하고, private는 알 필요가 없다.
어떤 클래스 모듈을 작성했을때, 그것을 사용하기 위한 외부로 알려지는 함수들이 있을 것이고, 그와는 별도로 클래스를 구현하다보니 클래스 안에서만 쓰는 함수들도 생겨남. 그런데 이런 내부에서만 쓰는 함수들이 외부 인터페이스로 굳이 공개될 필요도 없고 공개되어서는 안될 수도 있다. '정보은닉'이라는 단어보다 정확한 의미로는 '접근은닉' 이라고 정의하는 것이 와닿을지도..
2. public일 때 설정 할 수 없는 validate 처리 등은 setter 를 사용하면 가능하다.
public class Date{
private int m_iYear;
private int m_iMonth;
private int m_iDay;
public void setDate(int year, int month, int day){
if( ... ){
}
};
};
위와 같은 코드가 있을 때, setDate() 함수 안에서 m_iYear, m_iMonth, m_iDay 를 세팅할 때 값의 범위(m_iDay가 0보다 크고 31보다 작아야한다 등등)를 체크해서 넣는다면,
m_iYear, m_iMonth, m_iDay 의 값은 [존재하는 날짜] 를 가르킨다고 확신할 수 있다.
하지만 m_iYear, m_iMonth, m_iDay 가 public 으로 되어 있다면 이걸 어느 코드에서 고칠지 모르므로, [존재하는 날짜] 라는 보장하지 못함.
위와 같은 방식으로 데이터의 무결성을 보장해주는 방법 중의 하나
'프로그래밍 기초' 카테고리의 다른 글
Base64란? (0) | 2023.01.31 |
---|---|
API 그리고 REST와 SOAP (0) | 2022.11.28 |
MVC 패턴이란? (0) | 2022.09.26 |
오버로딩과 오버라이딩 (0) | 2022.09.26 |
하이라키(Hierarchy)란? (0) | 2022.09.19 |
댓글