[모던 자바 인 액션] 8장. 개선된 컬렉션 API
🍎 팩토리 메서드 of 메서드로 List, Set, Map을 생성할 수 있다. List.of("A","B","C"); Set.of("A","B","C"); Map.of("key1", "val1", "key2", "val2"); List.of()는 파라미터 10개까지는 오버로딩한 메서드를 사용하고, 10개 이상은 가변 인수를 사용한다. 이는 가변 인수는 배열을 생성 후 리스트로 감싸는데, 이 때 할당된 배열은 가비지 컬렉션의 비용이 들기 때문이다. 🍎 List removeIf : true면 제거하기 // 숫자로 시작하면 삭제하기 transactions.removeIf(tx -> Character.isDigit(tx.getReferenceCode().charAt(0))); replaceAll : 리스트의 요..
2023. 7. 28.
[오브젝트] 3장. 역할, 책임, 협력
객체지향 설계를 할 때는 역할, 책임, 협력 이 세 요소가 조화롭게 이뤄져야 한다. 각 요소가 어떤 개념을 가지는지 알아보고, 이 세 가지를 이용하여 객체지향 설계를 어떻게 해야하는지 알아보자. 협력 객체지향은 협력하는 객체들의 공동체라고 했다. 객체를 설계할 때 처음으로 해야 할 것은 어떤 협력이 이루어지는가를 파악하는 것이다. 따라서 협력이 설계의 문맥을 결정한다. '어떤 협력을 할 것인가'가 행동을 결정하고, 행동이 상태를 결정한다. ex) 영화 예매하기 기능을 구현하려고 한다. 여기선 영화 예매라는 협력이 이루어이고, '예매하라'라는 행동이 필요하다. 그리고 이 행동을 하기 위해선 '상영 시간, 기본 요금'이라는 상태가 필요하다. 책임 어떤 협력을 할 것인가를 결정했으면, 이제 책임을 파악하고, ..
2023. 7. 27.