May 2025
Beginner to intermediate
424 pages
7h 7m
Korean
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
Java에서는 클래스에서 객체 컬렉션을 캡슐화하여 변형을 제어하고 연산을 추가합니다. Kotlin에서는 변형을 제어하는 것이 덜 중요하며 확장 함수를 사용하여 연산을 추가할 수 있습니다. 캡슐화 없이 어떻게 더 나은 설계를 할 수 있으며, 어떻게 하면 그렇게 할 수 있을까요?
6장에서 컬렉션과 관련하여 Java와 Kotlin의 차이점에 대해 살펴보았습니다. Java의 컬렉션 인터페이스는 객체 지향의 뿌리에 따라 기본적으로 변경 가능한 반면, Kotlin은 컬렉션을 값 유형으로 취급합니다. 앞서 살펴본 것처럼 공유 컬렉션을 변경하면 모든 종류의 문제에 직면할 수 있습니다.
공유 컬렉션을 변경하지 않으면("공유 컬렉션 변경 금지") 이러한 문제를 피할 수 있지만, Java에서는 add 및 set 메서드가 자동 완성되기 때문에 그렇게 하기 어렵습니다. 대부분의 Java 코드는 관습과 규율 대신 원시 컬렉션을 공유하지 않는 더 안전한 방식을 현명하게 선택합니다. 대신 컬렉션은 다른 객체 안에 숨겨집니다.
예를 들어 트래블러의 Route 입니다:
publicclassRoute{privatefinalList<Journey>journeys;publicRoute(List<Journey>journeys){this.journeys=journeys;}publicintsize(){returnjourneys.size();}publicJourneyget(intindex){returnjourneys.get(index);}publicLocationgetDepartsFrom(){returnget(0).getDepartsFrom();}publicLocationgetArrivesAt(){return ...