Skip to content

Commit b9f81a0

Browse files
committed
[ADD] #1 Observable
1 parent 1506c45 commit b9f81a0

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

RxJava/#1 Observable.md

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Observer 클래스
2+
3+
4+
5+
**Observable** 은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다.
6+
7+
RxJava 1x에서는 데이터 소스를 Observable과 Single 클래스로 구성했었다. 하지만 RxJava 2.x 부터 Observable도 상황에 맞게 세분화하여 각각 Observable,Maybe,Flowable 클래스로 구분하여 사용한다.
8+
9+
Observable은 옵서버 패턴을 구현한다.
10+
11+
옵서버 패턴은 객체의 상태 변화를 **관찰** 하는 **관찰자** 목록을 객체에 등록한다.
12+
13+
상태 변화가 있으면 메서드를 호출하여 객체가 직접 목록의 각 옵서버에게 변화를 알려준다.
14+
15+
라이프사이클은 존재하지 않으며 보통 단일 함수를 통해 변화만을 알린다.
16+
17+
18+
19+
Observable 클래스에는 Observable을 생성하는 팩토리 함수, 중간 결과를 처리하는 함수, 디버그 및 예외 처리 함수가 모두 포함되어 있습니다. 따라서 많은 함수가 존재한다.
20+
21+
Observable을 생성할 때는 직접 인스턴스를 만들지 않고 정적 팩토리 함수를 호출합니다. 다양한 함수가 있으며 아래 표 처럼 구분할 수 있다.
22+
23+
| 팩토리함수 | 함수 |
24+
| ------------------------------------------ | ------------------------------------------------------------ |
25+
| RxJava 1.x 기본 팩토리 함수 | Create(), just(), from() |
26+
| RxJava 2.x 추가 팩토리 함수(from() 세분화) | fromArray(), fromIterable(), fromCallable(), fromFuture,fromPublisher() |
27+
| 기타 팩토리 함수 | interval(), range(), timer(), defer() 등 |
28+
29+
+ ## just() 함수
30+
31+
> 데이터를 발행
32+
33+
just() 함수는 인자로 넣은 데이터를 발행하고 Observable을 생성한다.(실제 데이터의 발행은 subscrible() 함수를 호출해야 시작한다.) 한 개의 값을 넣을 수도 있고 인자로 여러 개의 값을 넣을 수도 있다. 하지만 타입은 모두 같아야 한다.
34+
35+
![](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=http%3A%2F%2Fcfile21.uf.tistory.com%2Fimage%2F991E454C5CB7C8A505DFCC)
36+
37+
38+
39+
> 인자가 6개인 just() 함수와 인자
40+
41+
```java
42+
public class FirstExample{
43+
public void emit(){
44+
Observable.just(1,2,3,4,5,6)
45+
.subscribe(System.out::println);
46+
}
47+
....
48+
}
49+
// 출력 결과
50+
//1
51+
//2
52+
//3
53+
//4
54+
//5
55+
//6
56+
```
57+

0 commit comments

Comments
 (0)