2011-10-20 2 views
1

개체를 직렬화하여 디스크에 저장해야합니다. Java가 내장되어 있으며 클래스가 많이 변경되지 않는 한 제대로 작동합니다. 수업 시작과 함께 시작하면 일하는 것을 멈출 수 있습니다.직렬화, 클래스의 진화

여기에서 어떤 옵션을 사용할 수 있습니까? 기본적으로 업데이트가있는 경우 모든 사용자의 데이터 파일을 파괴하고 싶지 않습니다.

지금까지 XML에 직렬화를 시도했습니다 (동일한 문제가 있음). 또한 config/data 파일을 '손으로 롤'하려했습니다. 기본적으로 모든 것을 XML에 담아로드하고 구성 파일을 기반으로 NEW 객체를 만듭니다. 이것은 잘 작동하는 것처럼 보이지만 많은 수작업이므로이 모든 것을 변환하는 데 영원히 걸릴 것입니다.

다른 옵션은 있습니까?

답변

0

나는 직렬화 된 객체에 대한 지속적인 프록시를 갖는 큰 신자 (어려운 방법을 배웠다)입니다. 효과적인 Java에는 구현 방법에 대해 설명하는 전체 장이 있습니다.

내가하는 방식은 생성자에서 내 객체를 가져 와서 내부 필드를 적절하게 설정하는 내부 클래스를 사용하는 것입니다. 실제 객체가 진화하면 프록시에 새 필드를 추가하거나 완전히 새로운 프록시를 만듭니다 (이전 버전과의 호환성을 위해 이전 필드를 남겨 둡니다).

자세한 내용은 this article을 참조하십시오.