ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RxSwift - Observable factory
    Programming/RxSwift 2022. 3. 21. 18:31

    안녕하세요 BeePeach입니다 :)

     

    오늘은 Observable factory에 대해서 공부해보도록 하겠습니다.

    사실 이 부분은 이후에 포스팅할 Operator부분에서 다뤄도 되는 부분인데 먼저 다뤄보도록 하겠습니다.

     

    Observable factory 란 Observable에서 제공하는 deferred 오퍼레이터를 이용해서 조건에 따라 구독자마다 새로운 Observable을 생성하는 것을 말합니다.

     

    Factory 즉, 공장이라는 것을 떠올려보면 Observable을 찍어내는 공장을 생각하면 됩니다.

    주의해야하는 것은 조건에 따라 다른 이벤트를 방출하는 게 아니라 다른 Observable을 생성한다는것입니다.

     

    말로만해서는 이해가 안가니까 찬찬히 살펴보도록 하겠습니다.

     

    deffered 오퍼레이터를 살펴보면 클로저 하나를 파라미터로 받고 리턴형이 Observable입니다.

    그리고 파라미터로 받는 클로저는 () -> Observable으로 Observable을 리턴해줘야 합니다.

     

    즉 새로운 옵저버가 구독을 할 때마다 새로운 sequence를 리턴해주는 오퍼레이터입니다.

    예시를 보도록 하겠습니다.

     

     

    이 코드는 새로운 옵저버가 구독을 할 때마다 isOdd 변수가 변경이 되고 이 변수에 따라서 방출하는 데이터가 달라지는 Observable을 생성합니다.

     

    그래서 factory를 구독하게 되면 evenNumber를 방출하는 Observable이 생성되고 옵저버에게 2, 4, 6을 방출하게 됩니다.

    그다음에는 oddNumber를 방출하는 Observable이 생성되고 1, 3 5를 방출하게 됩니다.

     

    이렇게 Observable을 따로따로 만들 수도 있고 deferred 오퍼레이터를 이용해서 상황에 맞춰서 observable을 생성하는 factory를 만들 수 있습니다.

     

    설명한것과 마찬가지로 사용하는 입장에서는 이게 Observable factory인지 Observable인지 중요하지 않습니다.

    그냥 이전과 같이 구독해서 사용하며 조건에 맞게 알맞은 Observable이 생성되고 방출을 시작하게 됩니다.

     


     

    참고자료

     

    https://www.raywenderlich.com/books/rxswift-reactive-programming-with-swift/v4.0/chapters/2-observables#toc-chapter-006-anchor-007

     

    RxSwift: Reactive Programming with Swift, Chapter 2: Observables

    Now that you’re ready to use RxSwift and have learned some of the basic concepts, it’s time to play around with observables.

    www.raywenderlich.com

     

     

     

     

     

     

    728x90

    'Programming > RxSwift' 카테고리의 다른 글

    RxSwift - Subject와 Relay  (0) 2022.03.25
    RxSwift - Trait  (0) 2022.03.24
    RxSwift - Disposable  (0) 2022.03.17
    RxSwift - Subscribe  (0) 2022.03.17
    RxSwift - Observable  (0) 2022.03.05
Designed by Tistory.