2008-09-16 6 views
1

간단한 도메인 모델 (Contact, TelephoneNumber 및 ContactRepository)이 있습니다. 연락처는 엔티티이고 ID 필드가 있습니다. TelephoneNumber는 일반적인 값 객체입니다. identity가없고 Contact 인스턴스와 별도로로드 할 수 없습니다.웹 응용 프로그램의 엔터티 및 값 개체

다른면에서 우리는 연락처를 조작하기위한 웹 응용 프로그램이 있습니다. 첫 번째 페이지는 "ContactList"이고, 다음 페이지는 연락처/전화 번호 목록을 보여주는 "Contact/C0001"입니다.

우리는 텔레폰 번호 편집 양식을 구현해야합니다. 첫 번째 근사치는 'ThelephoneNumber/T0001'과 같이 탐색 할 수있는 페이지를 추가하는 것입니다.

하지만 ThelephoneNumber는 값 개체 클래스이며 해당 인스턴스를이 방법으로 식별 할 수 없습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 무국적 애플리케이션에서 식별 불가능한 객체를 어떻게 식별 할 수 있습니까?

답변

2

값 개체 상태가 특정 인스턴스를 식별합니까? 그렇지 않은 경우 편집 양식이 제출되면 이전 값과 새 값을 다시 전달할 수 있습니다. 그런 다음 기존 상태의 객체를 새 상태로 업데이트하십시오.

연락처/C0001/ThelephoneNumber와 같은 페이지가 있고 연락처 ID와 값 개체 클래스를 사용하여 변경할 인스턴스를 식별 할 수 있습니다.

내가 묻는 것을 완전히 오해하지 않는 한.

+0

음, 연락처에는 많은 TelephoneNumbers가 포함되어 있습니다. 그리고이 숫자 중 1 개를 편집하기위한 양식이 필요합니다. 연락처/C0001/ThelephoneNumber/21과 같은 URL을 사용하는 방법은 하나만 있습니다. 여기서 21은 Contact # 0001 내의 TelephoneNumbers의 FixedOrderList 종류의 색인입니다. 하지만이 아이디어가 마음에 들지 않습니다. – noetic

+0

숫자 인스턴스를 식별하는 유일한 방법은 상태에 따라 다르지만 위에서 설명한 이전/새 상태 메서드를 사용해야합니다. 비록 한 번 이상 연락처가 전화 번호를 공유 할 수 있다면 그것은 불가능합니다. 나는 그들을 엔티티로 만드는 것을 고려할 것이다. –

0

나는 TelephoneNumber의 단지 (어쩌면 복수 할) 수의 무리를 포함하고,이 방법을 참조 할 것 : 연락처/c0001 형태/TelephoneNumber를 (들)

실제로
0

난 항상 쉽게 제공하기 위해 찾아 전화 번호는 설계상의 엄격한 필요성이 없더라도 신원 정보입니다.

연락처 컨텍스트 외부에 존재할 수없는 엄격한 값의 개체 인 경우 양호한 사용자 인터페이스에서 자체 페이지가 아닌 연락처 페이지에서 전화 번호를 호출 할 수 있음을 나타냅니다.

그러나 나는 이러한 두 가지 방법 중 하나를 선택하면 Marc Gear의 솔루션이 좋은 것이라고 생각합니다.

0

많은 사람들이 믿고 싶다고해도 100 % 순수하지는 않습니다.

값 개체에는 일종의 ID 필드가 필요합니다. 때로는 전화 번호와 같은 객체에 대해 고유 한 것이지만 때로는 TelephoneNumber.Id와 같이 인위적이어야합니다.

더 빨리 받아들이면 좋습니다 :-)

관련 문제