Data Transfer Object; 데이터 전송 객체, 계층 간 데이터 교환을 위해 사용되는 객체
public class UserDTO {
// 속성
private String userName;
private String email;
// Getter와 Setter 메소드
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Value Object; 값 객체, 값(value) 표현을 위해 사용되는 객체
public final class EmailVO {
private final String email;
public EmailVO(String email) {
if(email == null || !email.contains("@")) {
throw new IllegalArgumentException("Invalid email address");
}
this.email = email;
}
public String getEmail() {
return email;
}
// VO는 불변이므로 setter는 제공하지 않는다.
}
Data Access Object; 데이터 접근 객체, 데이터베이스나 다른 영속성 저장소에 접근하기 위한 객체