2010-12-02 4 views
0

웹 서비스를 만드는 동안 클라이언트와 웹 서비스간에 BO (비즈니스 개체)를 교환하기로 결정했습니다.웹 서비스를 확장하기 위해 Business Objects를 준비하는 방법

미래에 내 모델을 확장하고 새 특성 (필드)을 내 보냅니다. 클라이언트에게 보내면 가장 좋은 방법은 무엇입니까?

기본적으로 각 BO에는 0..n 메타 필드가있을 수 있습니다.
각 메타 필드는 Key, Value와 같습니다. 여기서 키는 단순한 데이터 유형에서 다른 BO까지 될 수 있습니다.

여기 BO를 모델링하는 약간의 Java 코드가 있습니다. 올바른 트랙에 있다는 확인이 필요합니다.

class AbstractBO{ 

//optional list of meta fields for future extension 
List<MetaField> metaFieldList; 

//setters. getters 

} 

---- 

class MetaField { 

private Object key; 
private Object value; 

// setters 
// getters 

} 

---- 

class MyBO extends AbstractBO { 

//BO specific fields 
private String name; 
... 


} 

--- 

TODAY 

class Person extends AbstractBO { 

private String name; 
private int age; 

//extend metaFieldList = null; 

} 


---- 

TOMORROW 

class Person extends AbstractBO { 

private String name; 
private int age; 

//list with new metafield 

} 

어떻게 모델링 하시겠습니까?

+0

실제 객체 (예 : SOAP/RMI) 또는 좀 더 가벼운 (XML/JSON) 객체를 보내려고 하시겠습니까? –

+0

실제 개체 (BO)를 보내려고합니다. – reg

답변

0

후속 주석에서 알 수 있듯이 XML 또는 JSON (일반적으로 웹 서비스를 구현할 때 수행하는 작업) 대신 직접 객체 코드 (아마도 Serializable을 구현하여)를 보내려는 경우), 그렇다면 실제로 원하는 것을 성취 할 수있는 방법을 모릅니다.

자바가 객체를 비 직렬화하여 다시 만들려고 할 때, 입력 데이터와 클래스가 생각하는 것과 일치해야합니다. 모범 사례를 위해 serialVersionUID을 구현하고 클래스를 수정할 때마다 변수를 변경하여 변수를 추가 할 때 상대방의 사람이 실수로 클래스를 재구성 할 수 없도록해야합니다. 이전 버전의 코드.

관련 문제