책 정리/Effective C#
item 23, 클래스 내부 객체에 대한 reference 반환을 피하라.
최익필
2010. 7. 11. 07:17
포스트를 만든 목적
- 심심해서...
내용
C++을 보았다면, 클래스 내부 객체를 레퍼런스나 포인터로 뽑아 내는게 껄끄럽다는 건 알고 있을 것이다. 그러므로 이 껄끄러운 것을 시원하게 없애 줄 방법들 몇가지에 대해서 정리한다.
왜 껄끄러운가?
.. 사생활에 간섭 받으면 껄끄러운 것과 같다. 어디에서든지 개입시킬 수 있는건 ... 어디에서든지 버그가 발생할 수 있다는 의미와 똑같기 때문이다.
어떻게 대처 해야 하는가?
밖으로 사생활을 보여주지 않으면 그만이지만, 살다보면 안 될 수도 있다. 그래서 대충 4가지 정도 내숭이 있다.
- value 타입을 이용하기
- immutable 타입 사용하기
- 읽기용 interface 이용하기
- 읽기용 wapper 이용하기
결론
- reference를 반환할 땐, 내숭을 부리자.
여담
- .. 졸리다.