책 정리/Effective C#

item 23, 클래스 내부 객체에 대한 reference 반환을 피하라.

최익필 2010. 7. 11. 07:17

포스트를 만든 목적

  • 심심해서...

내용

C++을 보았다면, 클래스 내부 객체를 레퍼런스나 포인터로 뽑아 내는게 껄끄럽다는 건 알고 있을 것이다. 그러므로 이 껄끄러운 것을 시원하게 없애 줄 방법들 몇가지에 대해서 정리한다.

왜 껄끄러운가?

.. 사생활에 간섭 받으면 껄끄러운 것과 같다. 어디에서든지 개입시킬 수 있는건 ... 어디에서든지 버그가 발생할 수 있다는 의미와 똑같기 때문이다.

어떻게 대처 해야 하는가?

밖으로 사생활을 보여주지 않으면 그만이지만, 살다보면 안 될 수도 있다. 그래서 대충 4가지 정도 내숭이 있다.

  • value 타입을 이용하기
  • immutable 타입 사용하기
  • 읽기용 interface 이용하기
  • 읽기용 wapper 이용하기

결론

  • reference를 반환할 땐, 내숭을 부리자.

여담

  • .. 졸리다.