예를 들어, 서버와 통신하고 Chat 유형의 객체 목록 (Post 유형 등의 객체 포함)이 포함 된 ChatDataProvider 클래스가 있다고 가정 해 봅시다.응용 프로그램 전체에서 동일한 데이터를 사용하거나 복사합니까?
- 는
- 데이터를 "얕은"복사 목록 객체에 대한 참조를 보내기 : 내가 다른 클래스에이 채팅을 TRANSFERT (주문을 표시 할) 할 경우에, 나는 가능성의 몇 가지를 가지고 만들기 원래 객체
- 깊은 복사를 참조 데이터
내가 데이터를 캡슐화되지 않기 때문에 1 & 2. 나쁜 디자인으로 간주 될 생각이 들어 새로운 목록. 예를 들어 항목 변경의 순서는, 내가 하나가 같은 순서를이 깊은 복사 버전으로 변경 전파하고 적용해야하는 경우 (
데이터 일관성, 또는 나는 것 : 그러나 그것은 또한의 장점이 있습니다
감소 메모리 사용량
응용 프로그램 전반에 걸쳐 일관된 데이터를 Keepting) 그 목록의 새로운 깊은 사본을 얻을 필요하면 오류가하는 경향이 큰 구현 오버 헤드를 생성합니다. 그리고 이것은 동봉 된 응용 프로그램이므로 전파되지 않아야하는 "무단"변경 사항이 발생하지 않습니다 (자동).
그럼 어느 하나를 선택 하시겠습니까? 두 가지 모두 유효합니까?
아마도이 질문에 대한 답변이있을 수 있지만 무엇을 검색해야할지 모르겠습니다. 그래서 누군가가 링크/자원을 알고 있다면 괜찮습니다.