C++ 클래스 Get / Set 메소드를 쓸때 유용한 점은 어떤것이 있습니까?
글쓴이: ikpil / 작성시간: 수, 2008/05/07 - 2:28오후
private 의 경우
Get / Set 을 정의하여 사용 하고 있습니다.
Get / Set 자체를 줄이기 위해서
1. 생성자에서 초기 셋팅후 변경되지 않는것은 Set에서 제외 한다.
2. Get 으로 얻어올 필요가 없는것은 제외 한다.
이렇게 하는데, 메소드들을 줄이려고 노력합니다.
(5개 정도 정의하는데도 ... 코드 중복이라는 느낌이 듭니다.)
Get / Set 메소드를 쓸때 유용한 점은 어떤것이 있습니까?
- 도통 이 부분을 모르겠습니다. 은닉화와 데이터 보호를 위하여 쓴다고 책에서 봤습니다만
데이터 보호를 위해서 쓴다는것은 좀 이상하게 들립니다. 왜냐하면, Set으로 하면 여기 저기서 값이 변경될수 있기 때문입니다.
Forums:
이전에 비슷한
이전에 비슷한 내용의 글을 제가 올린 적이 있습니다. 한번 읽어보시면 조금 도움이 될지도 모르겠네요.
http://kldp.org/node/89756
우와~ 최강입니다.
최강입니다 많은 도움이 되었습니다.
http://www.ikpil.com
버그를 잡으려면
버그를 빨리 발견할 수 있도록 코딩할 필요가 있습니다.
현재 쓰이고 있는 프로그래밍 기법 또는 기술의 상당한 부분이 이러한 "버그 빨리 찾기"에 집중되어 있습니다.
데이터 은닉 또는 캡슐화는 기본적으로는 추상을 위해서 쓰이지만, 그 효과 중 하나로 디버그 할 때 굳이 찾아보지 않아도 되는 부분을 만들 수 있습니다.
캡슐화에 충실했다면, 하나의 버그는 캡슐안이나 밖에서만 일어납니다. 로직상의 실수가 아닌 다음에야 코딩 실수로 인해 둘 다 동시에 버그가 나는 일은 극히 드뭅니다.
하지만 캡슐화를 하더라도 멤버변수로 억세스를 하게되면, 더 많은 부분을 찾아봐야합니다. 하지만, get/set형태로 쓰게되면 데이터를 "쓸 때"와 "읽을 때"를 구별해서 그 버그의 성향에 맞춰서 한 가지만 찾아보면 됩니다. 또, get/set을 쓰면서도 코딩 실수로 인한 버그를 줄일 수도 있습니다. get을 써야할 때 set을 쓰면 바로 표가 나지만 변수를 쓰면 표가 잘 나지 않습니다.
물론 문법적으로 더 편한 방법이 있다면 꼭 get/set을 만들지 않아도 됩니다.
어쨌든, while과 for의 쓸 곳을 구별해서 쓰거나, struct와 class를 구별해서 쓰는 등의 노력도 이와 같이 디버그를 줄일 수 있는 관점에서 봐야할 필요가 있습니다.
프로그래밍을 할 때 "제약"이 있을 경우에 상당히 불편해지는 경우도 있지만, 오히려 매우 편해지는 경우도 있습니다. 대부분의 경우에 초보는 이런 제약에서 벗어나려고 노력을 많이 하고, 고수가 될 수록 스스로에게 제약을 걸려고 많이 노력을 하게 됩니다.
------------------------------
How many legs does a dog have?
------------------------------
How many legs does a dog have?
네,
위의 글을 다 읽어보니 semmal님께서 말씀하신데로 요약되는것을 발견하였습니다
감사합니다.
http://www.ikpil.com
댓글 달기