일치 맵(Identity Map) 패턴
일치 맵 패턴의 정의
일치 맵 패턴은 맵에 로드된 모든 개체의 유지에 의하여 개별 개체는 한번만 로드됨을 확신한다. 이러한 개체들을 참고 할 때 맵을 사용한 개체 검색을 하는 패턴이다.
그림 Ⅴ-18. 일치 맵 패턴의 구조
일치 맵 패턴의 설명
일치 맵 패턴은 단일 비즈니스 트랜잭션에 있는 데이터베이스에서 읽은 모든 개체의 패턴을 유지 시킨다. 객체를 원하는 경우에는 이미 가지고 있다면 일치 맵 패턴을 처음에 확인한다.
일치 맵 패턴의 사용
-
비일치성을 막는다.
-
수행성을 향상시킨다.
일반적으로 일치 맵 패턴은 데이터베이스에서 가져온 개체를 관리하기 위해 사용한다. 중요한 이유는 메모리 상에 두개의 개체가 하나의 데이터베이스 레코드에 대응 되기를 원하지 않기 때문이다. 만일 비 일관성적으로 두개 레코드를 수정한다면 데이터베이스 매핑은 혼란을 가져온다.
다른 이유는 데이터베이스를 읽기 위한 캐쉬와 같은 행동을 한다.
일치 맵 패턴의 예제
일치 맵을 위한 맵 필드와 접근자들은 다음과 같다.
private Map people = new HashMap();
public static void addPerson(Person arg) {
soleInstance.people(arg.getId(), arg);
}
public static void getPerson(Long key) {
return (Person) soleInstance.people.get(key);
}
public static void addPerson(Person arg) {
return getPerson(new Long(key));
}
자바(Java)의 애로사항 중에 하나는 long 이 객체가 아니라는 것이다. 이러한 이유로 맵을 위한 인덱스로 사용할 수 없다.
'Dev... > 소프트웨어 아키텍처' 카테고리의 다른 글
[SA강좌] Part 4-17 Association Table Mapping 패턴 (0) | 2008.12.13 |
---|---|
[SA강좌] Part 4-16 Foreign Key Mapping 패턴 (0) | 2008.12.13 |
[SA강좌] Part 4-14 Unit of Work 패턴 (0) | 2008.12.07 |
[SA강좌] Part 4-13 Data Mapper패턴 (0) | 2008.12.02 |
[SA강좌] Part 4-12 Active Record 패턴 (0) | 2008.11.30 |