불변 객체

· Java
자바 API 로는 깊은 복사를 수행할 수 없다는 것을 알게 됐다. 따라서 외부 혹은 내부로부터 변경에 취약하지 않도록 내부 요소들이 불변 객체여야 한다. 방어적 복사는 생성자를 통해 초기화하거나 내부의 객체를 반환할 때, 새로운 객체로 감싸서 복사해주는 방법이다. 외부와 내부에서 주소 값을 공유하는 인스턴스의 관계를 끊어주기 위해서 방어적 복사를 사용한다. 또한, 외부로 값을 노출시킬 때도 관계를 끊어주기 위해서 복사본을 반환해준다. 1. 주소 복사 List copyNumbers = numbers; =의 경우 그저 참조변수를 하나 만들어 주소를 넣어주기 때문에 완전히 동일한 컬렉션이다. 2. = new ArrayList() List newNubmers = new ArrayList(numbers); 방어적..
코딩스토리
'불변 객체' 태그의 글 목록