동일한 개념을 나타내는 외부 소스 (수정 불가능)에서 오는 여러 클래스가 있습니다. 예 : Address
. 나는이 com.namespace2.Address
namespace3.com.CoolAddress
(필드 house_num
, street
, city
과), (필드 h
, s
, c
과), (필드 houseNum
, street
, city
와) com.namespace1.Address
.객체 변환 패턴
내가 사용하는 특정 웹 서비스는 namespace3.com.CoolAddress
이라는 com.namespace1.Address
을 생성해야하므로 특정 주소 개체 유형이 필요하다는 점이 문제입니다. 필드는 쉽게 맵핑 할 수 있지만 패턴을 찾는 방법을 찾고 있습니다.
실례로 인스턴스 객체 AddressConverter
은 상태가 없으므로 의미가 없으며 클래스에만 동작이있을 때 유틸리티 클래스의 정적 메소드로 귀결됩니다. 장기간에 걸쳐 새로운 객체를 서로 매핑해야 할 때마다 메소드를 추가/수정/제거 할 수있는 곳이 한 곳 있습니다. 어떻게 완료 될지는 모르지만 코드가 어디에 배치되는지 (한 번에) 알고 필요할 때 매핑을 변경할 수 있습니다.
생각하십니까?
핸들러 테이블 제안에 +1 - 나는 그 패턴을 꽤 사용합니다. 그러나'Hashtable'보다는'Map'을 사용하십시오. :) –
공장은 창조적 인 패턴입니다. 문제는 새로운 객체를 생성하는 대신 기존 객체를 관리하는 것입니다. – SomeWittyUsername
@icepack 나는 OP가 하나의 객체를 다른 객체에 매핑 할 때 새로운 인스턴스를 생성하려고한다고 생각합니다. 나는 "외부 소스 (수정 불가능한)로부터 오는 여러 다른 객체"라는 문장으로 객체의 클래스가 변경 불가능하다는 것을 의미한다고 생각합니다. 나는 다음 문장에 기초를 둔다 : "나는 ** ** namespace3.com.CoolAddress가 주어진 com.namespace1.Address를 생성해야한다.". 나는 그 문장을 편집 할 것이다. –