해결됨
Readable Code: 읽기 좋은 코드를 작성하는 사고법
요구사항이 추가 될 때마다 하나의 일급 컬렉션을 재사용 하나요? 아니면 새롭게 만들어주나요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 우빈님!프로젝트를 진행중인데, User 라는 엔티티가 있고, List<User> 를 감싸는 Users 라는 일급 컬렉션을 만들었습니다.
import java.util.Collections;
import java.util.List;
import java.util.Optional;
/**
*
* List<User>를 감싸는 일급 컬렉션
* */
public class Users {
private final List<User> users;
private Users(List<User> users) {
this.users = Collections.unmodifiableList(users);
}
public static Users from(List<User> users) {
return new Users(users);
}
public List<User> getUsers() {
// return new ArrayList<>(users);
return Collections.unmodifiableList(this.users);
}
// 메소드 명으로 hasNotEnoughUsers()? hasNotBothSenderAndReceiver()?
public boolean hasNotEnoughUsers() {
return users.size() <= 1;
}
public Optional<String> getSlackIdById(Long userId) {
return users.stream()
.filter(user -> user.getId().equals(userId))
.findFirst()
.map(User::getSlackId);
}
} 현재 사용 용도는 slack 메시지를 보내기 위한 발신자, 수신자의 정보를 가져와서 처리하는 용도인데요. 문득 든 생각이 지금 용도 말고 새로운 용도로 일급 컬렉션을 써야 한다면, 예를 들어 배송 담당자의 정보를 가져와서 처리 하는 용도가 필요해졌고, 일급 컬렉션을 적용해야 한다면, 지금의 Users 일급 컬렉션의 메서드를 추가해서 사용하는 건지, 새롭게 DeliveryStaffUsers 를 만들어서 사용하는건지, 우빈님께서는 어떻게 사용하시는지 궁금합니다.