이해하기 전에 알아야 하는 핸들이란?
다른 객체에 손을 댈 수 있게 하는 매개자를 지칭하며, 참조자등의 성격을 띄우고 있다.(외부 참조)


그렇다면 왜 '핸들'을 반환하는 코드를 피하는것일까?
쉽게 말해서 클래스 내부 멤버 변수는 private 으로 해야 한다고 배웠을 것이다. 그런데 멤버 변수에 대한 포인터나 레퍼런스를 반환하게 된다면, 그것이 const 로 한다해도, 외부에서 아주 손쉽게 변환을 가할수 있는 상태가 된다.

이 상태는 바로 캡슐화가 깨진 상태가 된다. 캡슐화가 왜 중요한지는 다들 알것이므로 생략한다.


저자 역시, 핸들을 반환해야 하는 어쩔수 없는 경우에만 핸들을 반환한다고 말한다.
어찌 되었던, 클래스 private에 넣는것을 간과하여, 코딩을 하면 안된다는 것을 알려 준다.


이것만은 잊지 말자!
1. 어떤 객체의 내부 요소에 대한 핸들을 반환하는 것을 피하도록 하자


관련링크
http://synch3d.com/wiki/moin/moin.cgi/EffectiveC_2b_2b#line159
http://ikpil.tistory.com/324
http://ikpil.tistory.com/323







  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기