2013-08-02 1 views
0

필자는 객체 직렬화 및 관련 주제를 검색하고 읽었습니다. 그러나 나는 어떤 유스 케이스도 생각할 수 없다.개체 직렬화의 주요 사용 사례는 무엇입니까?

또는이를 사용해야하는 동기 또는 상황은 무엇입니까?

위로 질문하기 : 직렬화가 객체의 상태를 저장하는 것이라면 Java의 객체 직렬화가 왜 필요합니까? 개체의 구성을 텍스트 파일에 저장하고 대신 네트워크를 통해 보낼 수 있습니까?

+0

때로는 객체 외부의 일부 매체에 객체의 상태를 저장해야합니다 (객체를 설명하는 값으로 측정). 나중에 저장하기 위해 저장할지, 다른 응용 프로그램으로 전송할지 등을 기술합니다. 기술적으로 데이터베이스에 데이터를 저장하면 특정 형식으로 객체를 "직렬화"합니다. – David

+0

@David 후속 질문을 게시했습니다. – drum

+2

직렬화가 객체를 다른 시스템 (심지어 완전히 다른 플랫폼)과 공유하기위한 것이라면 데이터 형식의 표준이 중요합니다. 예, 텍스트 파일에 수동으로 쓸 수 있습니다. 하지만 그 파일의 표준을 정의해야하며, 객체의 모든 변형을 고려해야하며, 데이터를 소비하려는 사람은 해당 표준을 충족하는 사용자 정의 코드를 작성해야합니다. 기존 표준을 사용하는 것이 훨씬 쉽습니다. – David

답변

1

직렬화는 매우 강력하고, 이미 다른 사용자가 언급 한 외에, 여러 용도로 사용 : 당신이 딥 카피 객체와에 빠지지 않고 그것을 할 수있는 간단한 방법을 원하는 경우에

반사 악몽을 직렬화하는 것입니다 : How do you do a deep copy of an object in .NET (C# specifically)?

또 다른이 데이터 검증 수 있습니다. 일반적으로 메시지 구조를 정의하는 XML 스키마를 작성하여 유선을 통해 오브젝트를 전송할 계획이라면 전송할 수있는 오브젝트가 될 클래스를 생성합니다. 객체 상태를 보존하기 위해 객체 상태를 보존하기 위해 예를 들어 XML로 직렬화하려는 객체를 보내기 전에 해당 데이터 스트림을 보내고 다른 끝에서 들어오는 XML 메시지가 스키마에 대해 유효한지 확인하여 미리 정의 된 내용을 준수하는지 확인하십시오 구조체로 변환 한 다음 객체로 역 직렬화하여 객체 지향적 조작이 필요합니다.

1

확인 MSDN은 : http://msdn.microsoft.com/en-us/library/vstudio/ms233843.aspx

직렬화는 객체의 상태를 저장하고 객체의 저장뿐만 아니라 데이터 교환을 제공하고, 필요에 따라 다시 작성하는 개발자 수 있습니다. 직렬화를 통해 개발자는 웹 서비스를 통해 원격 응용 프로그램에 개체를 보내거나 한 도메인에서 다른 도메인으로 개체를 전달하거나 XML 문자열로 방화벽을 통해 개체를 전달하거나 보안 또는 사용자 별 유지 관리와 같은 작업을 수행 할 수 있습니다 정보를 제공합니다.

1

때로는 개체의 상태를 저장해야합니다. 이 기사 covers 꽤 괜찮습니다. 이유에 기사에서 인용 직렬화하기 :

직렬화는 다음과 같은 기능을 제공합니다

  • 디스크의 파일에 속성을 쓰는 예를 들어, 객체를 지속, 또는 데이터베이스에 저장하는 방법.
  • SOAP과 같은 원격 프로 시저 호출 방법.
  • 특히 COM, CORBA 등과 같은 소프트웨어 구성 요소에서 객체를 배포하는 방법입니다.
  • 시변 데이터의 변경을 감지하는 방법입니다.
관련 문제