Back End/리팩토링 보고서
[리팩토링 보고서] 일급 컬렉션의 적용
DevPing9_
2022. 3. 4. 21:07
일급 컬렉션은 Collection을 Wrapping 하며 그 외 다른 멤버변수가 없는 클래스를 말한다.
일급컬렉션의 이점
1. Collection 의 불변성을 보장
2. 상태와 행위를 한 곳에서 관리
3. 비즈니스에 종속적인 자료구조로 코드흐름을 더욱 쉽게 파악가능
따라서 일급컬렉션을 적용하면 유지보수가 용이하며
용도를 분리하게 되어 더욱 객체지향적이게 된다.
프로젝트로의 적용
Summary.
코드 분리로 유지보수가 편리할 뿐만 아니라
불변성으로 인해 사이드이펙트를 최소화하여 협업에 용이
Item Domain
@Entity @Getter
public class Item extends BaseEntity implements Persistable<String>{
/*
fields ...
*/
@Embedded
private Tags tags = new Tags();
public List<Tag> getTags(){
return this.tags.getTags();
}
}
일급컬렉션 Tags
@Embeddable
@Getter
public class Tags {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "item"
,targetEntity = Tag.class)
@BatchSize(size=100)
private List<Tag> tags = new ArrayList<>();
/*
Business Logic Here
*/
}
728x90