2023-java-study / book-study

북 스터디 기록 레포지토리
0 stars 0 forks source link

[item 13] 원본과 복제된 객체가 가변 객체를 공유해도 안전할때 #45

Closed ssstopeun closed 1 year ago

ssstopeun commented 1 year ago

p. 81에 (단, 원본과 복제된 객체가 그 가변 객체를 공유해도 안전하다면 괜찮다.) 에서 안전하다는 것은 배열과 같은 가변 객체를 수정하는 것과 같은 상황이 일어나지 않고 불변성을 지킨다는 의미일까요?

코드를 수정하면서 그 가변객체가 안전하지 않은 상황이 안 생긴다는 보장을 할 수 없을 것 같은데...어떻게 생각하시나요?

gmelon commented 1 year ago

저는 이 문장을 뭔가 문법이나 언어적으로 불변성을 해치지 않는다는 의미보다는 비지니스 규칙 상 여러 인스턴스에서 공유되고 같이 변경되어도 무방한 값 이라고 이해했습니다!

예시를 생각해 내기가 좀 어려운데 음.. 모든 인스턴스간에 공유되면서 전체 인스턴스의 특정 행위를 count하는 totalCount..? 와 같은 참조 변수가 있다면 (동기화 된다고 했을 때) 여러 인스턴스 간에 공유되어도 비지니스 규칙에 부합하므로 문제가 없다. 이런 의미로 이해했습니다.

이 의견은 어떻게 생각하시는지 저도 궁금하네요!!