목적
업무와 DBMS를 분리하기 위해 사용
요소
문제 : DB를 사용하는 방법이 변경되면 클라이언트의 수정이 많아짐
해결 : 사용 방법의 분리
결과 : loose coupling, 확장성
정의
Dao : 모델에 대한 기본적인 CRUD 인터페이스
Value Object (Model Object) : Dao를 사용하여 데이터를 저장하는 단순 POJO(실제 데이터를 담는 자바 클래스)
-> Dao 가 DBMS서 받은 데이터를 넘겨줄 때는 VO에 담아서 넘겨줌.
DaoImpl에서 findById 메소드를 구현한 코드.
public Person findById(int id) { Person person = null;
try {
String fmt = "SELECT * FROM %s WHERE id = %d";
String q = String.format(fmt, DB_TABLE_NAME, id);
rs = statement.executeQuery(q);
if (rs.next()) {
person = new Person(rs.getInt("id")
, rs.getString("name"), rs.getString("address"));
}
}
catch (SQLException e) { e.printStackTrace(); }
return person;
}
DBMS에서 얻은 데이터를 Person이라는 VO 객체를 생성해서 반환한다.
reference 상명대학교 조용주 교수님 고급객체지향프로그래밍
'컴퓨터과학 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 퍼사드 패턴 (Facade Pattern) (0) | 2021.12.05 |
---|---|
[디자인패턴] 어댑터 패턴 (Adapter Pattern) (0) | 2021.12.05 |
[디자인패턴] 반복자 패턴 (Iterator Pattern) (0) | 2021.10.18 |
[디자인패턴] 싱글턴 패턴 (Singleton Pattern) (0) | 2021.10.18 |
[디자인패턴] 팩토리 패턴 (Factory Pattern) (0) | 2021.10.18 |
댓글