https://kong-dev.tistory.com/226#getter-%EC%99%9C-%EC%95%88%EC%93%B0%EB%83%90?
이 블로그를 참조하자.
도대체 그 기준이 뭘까
언제 써도 되는거고 언제 쓰면 안되는 걸까
위 글을 보고 어느정도 이해가 됐다.
getter를 왜 사용하면 안될까
그건 바로 캡슐화가 깨지기 때문이다.
그렇다는 말은 즉 캡슐화가 깨지지 않는다면 getter를 사용해도 좋다는 말이지 않을까 싶다.
정확하게 딱잘라 말하기는 어렵겠지만
그 기준은 아무래도 조회만 하느냐 아니면 조회 후 다른 비즈니스 로직에 사용되느냐 인 것 같다.
예를 들어
number의 숫자만큼 '-'를 출력해주세요!
라는 요구사항이 있다면 그냥 number를 조회하기만 할 뿐 이걸 이용해 로직을 만들어 사용하지는 않는다.
그렇다면 getNumber()
를 사용해도 좋을 것 같다.
이런 예시는 어떨까
number가 5보다 크면 '-', 5보다 작으면 '='을 출력해주세요.
얘는 안된다.
number를 가져와서 5와 비교하는 비즈니스 로직에 사용되기 때문이다.
이럴 경우에는 number를 가지고 있는 객체에게 부탁해서 이거 5보다 큰지 작은지 알려줘!
라고 부탁하는 것이 좋다.
랜덤성에 대한 테스트는 어떻게 진행해야 할까..
반복문을 여러번 돌릴 수도 없고..
그러다 생각난 1주차 코드 둘러보다 찾은 interface 활용법!
NumberGeneator
를 interface로 만들고 랜덤한 숫자를 만드는 RandomNumberGenerator
를 만들어서 이걸로 사용한다.
테스트시에는 interface를 가져와서 랜덤값이 아닌 내가 정한 값을 리턴하도록 설정! 그리고 테스트 고고
이 좋은 걸 왜 지금까지 안 썼을까!!!
https://flight-developer-stroy.tistory.com/36