ObservableTransformer
우선 compose
를 사용하는 방법에 대해서 알아보자.
compose
를 사용하는 주된 이유는 어떠한 공통된 일련의 동작을 커스텀해서 변형할수 있다.
우선 사용하기 전 형태를 살펴보자.
Observable.just("Alpha", "Beta", "Gamma", "Delta", "Epsilon")
.collect(ImmutableList::builder , ImmutableList.Builder::add)
.map(ImmutableList.Builder::build)
.subscribe(System.out::println);
Observable.range(1 , 15)
.collect(ImmutableList::builder , ImmutableList.Builder::add)
.map(ImmutableList.Builder::build)
.subscribe(System.out::println);
''''
[Alpha, Beta, Gamma, Delta, Epsilon]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
위 내용은 주어진 문자열을 collect 함수로 이용해서 imutableList( Guava 라이버러리 ) 형태로 변경하고 다시 그걸 Builder -> List
로 변경해주는 보통 RxJava 함수이다.
.map(ImmutableList.Builder::build)
을 추가시 SingleObserver<ImmutableList> 형태로 받지만..
하지만 안하는 경우 SingleObserver<ImmutableList.Builder>
으로 받기 때문에 map을 넣어서 변형을 해준다.
그래서 저기 두개의 내용을 보게되면
.collect(ImmutableList::builder , ImmutableList.Builder::add)
.map(ImmutableList.Builder::build)
이 2개의 부분에서 중복적으로 사용되는 걸 볼수 있다.
'스터디 > RxJava2' 카테고리의 다른 글
[RxJava2] Compose with Parameters (0) | 2017.10.22 |
---|---|
[RxJava2]Compose 활용 (0) | 2017.10.22 |
[RxJava2]Flowable을 직접 커스텀해보자. (0) | 2017.10.22 |
[RxJava2]Backpressure와 함께 Flowable를 만들어 보자 (0) | 2017.10.22 |
[RxJava2]Subscriber 란 무엇인가? (0) | 2017.10.22 |