-
30장 - 요소의 가시성을 최소화하라Kotlin/Effective Kotlin 요약 2023. 3. 16. 00:01728x90
가시성과 클래스
클래스는 만족해야 하는 상태에 대한 규약들이 존재합니다.
이런 규약을 모르는 사람은 클래스의 상태를 마음대로 변경할 수 있습니다.
이렇게 되면 클래스의 불변성이 무너질 가능성이 있습니다.
일반적으로 코틀린에서는 구체 접근자의 가시성을 제한해서 모든 프로퍼티를 캡슐화하는 것이 좋습니다.
가시성이 제한될 수록 클래스의 변경을 쉽게 추적할 수 있으며, 프로퍼티의 상태를 더 쉽게 이해할 수 있습니다.
이로 인해 동시성을 처리할 때도 더 안전해집니다.
가시성 한정자
- public(디폴트) : 어디에서나 볼 수 있음
- private : 클래스 내부에서만 볼 수 있음
- protected : 클래스와 서브클래스 내부에서만 볼 수 있음
- internal : 모듈 내부에서만 볼 수 있음
예를 들어 만약 모듈이 다른 모듈에 의해서 사용될 가능성이 있다면 internal을 사용하여 공개하고 싶지 않은 요소를 숨깁니다.
이러한 규칙은 DTO에는 적용하지 않는 것이 좋습니다.
데이터를 저장하도록 설계된 클래스는 숨길 이유가 없기 때문입니다.
결론
가시성은 최대한 제한적인 것이 좋습니다.
728x90'Kotlin > Effective Kotlin 요약' 카테고리의 다른 글
32장 - 추상화 규약을 지켜라 (0) 2023.03.18 31장 - 문서로 규약을 정의하라 (0) 2023.03.17 29장 - 외부 API를 랩해서 사용하라 (0) 2023.03.15 28장 - API 안정성을 확인하라 (0) 2023.03.14 27장 - 변화로부터 코드를 보호하려면 추상화를 사용하라 (3) 2023.03.13