2012-11-26 5 views
1

저는 다양한 방법으로 오브젝트를 복사하기위한 디자인 원리/패턴을 찾고 있습니다. 예를 들어, ACCOUNT 유형의 오브젝트를 복사하는 다음 옵션이 있습니다. 다른 방법으로 오브젝트 복사하기

1) 복제 정확히

2) 복제 모든 신용 정보를 제외하고

는 는

3) 신용 반전 (값을 부정) 등을위한 복제는 ..

모든 시나리오에서

, 같은 객체입니다

복제; 클라이언트의 입력에 따라 다른 값을 사용합니다. 프로토 타입 패턴을 생각하고있었습니다. 클라이언트가 오브젝트를 복사하는 방법을 제어 할 수는 없습니다.

감사합니다,

프라 딥

+0

왜 개체를 복제/복사하기 위해 패턴/원칙을 사용하고 싶습니까? –

답변

0

프로토 타입 패턴 또는 아마도 공장보다 일반적인 솔루션으로.

정확히 우리가 알고있는 복제본입니다. 가장 일반적인 솔루션은 값 별 복사, 참조 별 복사 및 하이브리드 카피시 쓰는 방법입니다.

"신용을위한 클론"과 같이 신용 세부 정보를 제외하고 모두 복제 - 대신 원본과 관련된 새 개체를 만듭니다.

콘크리트 객체에 이들 중 어느 것을 구현하든 공장에서든 실제로 작업은 로컬 조건의 문제입니다.

0

복제는 간단한 개념이 아닙니다. 기존의 얕은 복사본이나 딥 복사본이 있지만 중간에 어떤 것도 넣을 수 있습니다. 깊은 복사 ('재귀 적 복제') 중에 다른 객체의 일부 필드를 얕은 사본으로 복사 할 수 있습니다.

특정 복제 방법은 응용 프로그램의 책임이므로 자동 또는 자동 생성 할 수 없습니다.

복잡한 개체 그래프를 복제하는 경우 일부 필드가 부모 클래스에 의해 업데이트 될 수도 있습니다. 따라서 한 클래스의 복제 메서드에서 모든 것을 캡슐화 할 수 없습니다.

설명하는 특정 복제 패턴을 찾을 수 없지만 일부 확장명 ('복제 플래그')이있는 프로토 타입 패턴은 괜찮습니다.

관련 문제