Skip to content

Commit 36715cc

Browse files
authored
Update 2. Key types.md
Пунктуация и мелкие ошибки
1 parent a13526c commit 36715cc

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

Part 1 - Getting Started/2. Key types.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ interface Observer<T> {
3535
```
3636
Эти три метода являются поведением, которое описывает реакцию наблюдателя на сообщение от observable. <b>onNext </b>у наблюдателя будет вызван 0 или более раз, опционально сопровождаясь <b>onCompleted </b>или <b>onError</b>. После них вызовов больше не будет.
3737

38-
Разрабатывая код с помощью Rx, вы увидите много <b>Observable</b>, но намного меньше <b>Observer</b>. И хотя и необходимо понимать концепцию <b>Observer</b>, существуют способы не требующие непосредственного создания его экземпляра.
38+
Разрабатывая код с помощью Rx, вы увидите много <b>Observable</b>, но намного меньше <b>Observer</b>. И хотя и необходимо понимать концепцию <b>Observer</b>, существуют способы, не требующие непосредственного создания его экземпляра.
3939

4040
<h2>Реализация Observable и Observer</h2>
41-
Вы можете вручную реализовать <b>Observer </b>и <b>Observable</b>. В реальности в этом, как правило, нет необходимости: Rx предоставляет готовые решения, чтобы упростить разработку. Это также может быть не совсем безопасно, поскольку взаимодействие между частями библиотеки Rx включает в себя принципы и внутреннюю инфраструктуру, которые могут быть не очевидны новичку. В любом случае, будет проще для начала использовать множество инструментов уже предоставленных библиотекой для создания необходимого нам функционала.
41+
Вы можете вручную реализовать <b>Observer </b>и <b>Observable</b>. В реальности в этом, как правило, нет необходимости: Rx предоставляет готовые решения, чтобы упростить разработку. Это также может быть не совсем безопасно, поскольку взаимодействие между частями библиотеки Rx включает в себя принципы и внутреннюю инфраструктуру, которые могут быть неочевидны новичку. В любом случае, будет проще для начала использовать множество инструментов, уже предоставленных библиотекой для создания необходимого нам функционала.
4242

4343
Чтобы подписаться на observable, совсем нет необходимости в реализации <b>Observer</b>. Существуют другие перегрузки метода <b>subscribe</b>, которые принимают в качестве аргументов соответствующие функции для <b>onNext</b>, <b>onError </b>и <b>onSubscribe</b>, инкапсулирующие создание экземпляра <b>Observer</b>. Предоставлять их всех тоже не обязательно, вы можете описать только часть из них, например, только <b>onNext </b>или только <b>onNext </b>и <b>onError</b>.
4444

@@ -68,17 +68,17 @@ public static void main(String[] args) {
6868
3
6969
4
7070
```
71-
Как мы видим,<b> 1</b> не была напечатана из-за того, что мы не были подписаны в момент когда она была передана. После того как мы подписались, мы начали получать все значения поступающие в subject.
71+
Как мы видим,<b> 1</b> не была напечатана из-за того, что мы не были подписаны в момент, когда она была передана. После того как мы подписались, мы начали получать все значения, поступающие в subject.
7272

73-
Здесь мы впервые используем метод <b>subscribe</b>, так что стоит уделить этому внимание. В данном случае мы используем перегруженную версию, которая принимает один объект класса <a href="http://reactivex.io/RxJava/javadoc/rx/functions/Function.html">Function</a>, отвечающий за <b>onNext</b>. Эта функция принимает значение типа Integer и ничего не возвращает. Функции, которые ничего не возвращают также называются actions. Мы можем передать эту функцию следующими способами:
73+
Здесь мы впервые используем метод <b>subscribe</b>, так что стоит уделить этому внимание. В данном случае мы используем перегруженную версию, которая принимает один объект класса <a href="http://reactivex.io/RxJava/javadoc/rx/functions/Function.html">Function</a>, отвечающий за <b>onNext</b>. Эта функция принимает значение типа Integer и ничего не возвращает. Функции, которые ничего не возвращают, также называются actions. Мы можем передать эту функцию следующими способами:
7474
<ul>
7575
<li>Предоставить объект класса <b>Action1&#60;Integer&#62;</b></li>
76-
<li>Неявно создать таковой используя <a href="https://en.wikipedia.org/wiki/Anonymous_function#Java">лямбда-выражение</a></li>
76+
<li>Неявно создать таковой, используя <a href="https://en.wikipedia.org/wiki/Anonymous_function#Java">лямбда-выражение</a></li>
7777
<li>Передать ссылку на существующий метод с соответствующей сигнатурой. В данном случае, <b>System.out::println</b> имеет перегруженную версию, которая принимает <b>Object</b>, поэтому мы передаем ссылку на него. Таким образом, подписка позволяет нам печатать в основной поток вывода все поступающие в <b>Subject </b>числа.</li>
7878
</ul>
7979

8080
<h2>ReplaySubject</h2>
81-
<b>ReplaySubject</b> имеет специальную возможность кэшировать все поступившие в него данные. Когда у него появляется новый подписчик, последовательность выдана ему начиная с начала. Все последующие поступившие данные будут выдаваться подписчикам как обычно.
81+
<b>ReplaySubject</b> имеет специальную возможность кэшировать все поступившие в него данные. Когда у него появляется новый подписчик, последовательность выдается ему, начиная с начала. Все последующие поступившие данные будут выдаваться подписчикам как обычно.
8282

8383
```JAVA
8484
ReplaySubject<Integer> s = ReplaySubject.create();
@@ -97,7 +97,7 @@ Late: 1
9797
Early:2
9898
Late: 2
9999
```
100-
Все значения были получены, не смотря на то, что один из подписчиков подписался позже другого. Обратите внимание, что до того как получить новое значение, подписчик получает все пропущенные. Таким образом, порядок последовательности для подписчика не нарушен.
100+
Все значения были получены, несмотря на то, что один из подписчиков подписался позже другого. Обратите внимание, что до того как получить новое значение, подписчик получает все пропущенные. Таким образом, порядок последовательности для подписчика не нарушен.
101101

102102
Кэшировать всё подряд не всегда лучшая идея, так как последовательности могут быть длинными или даже бесконечными. Фабричный метод <b>ReplaySubject.createWithSize</b> ограничивает размер буфера, а <b>ReplaySubject.createWithTime</b> время, которое объекты будут оставаться в кеше.
103103

@@ -166,10 +166,10 @@ s.onNext(1);
166166
0
167167
1
168168
```
169-
Так как роль <b>BehaviorSubject </b>– всегда иметь доступные данные, считается неправильным создавать его без начального значения, также как и завершать его.
169+
Так как роль <b>BehaviorSubject </b>– всегда иметь доступные данные, считается неправильным создавать его без начального значения так же, как и завершать его.
170170

171171
<h2>AsyncSubject</h2>
172-
<b>AsyncSubject </b>также хранит последнее значение. Разница в том, что он не выдает данных до тех пока не завершится последовательность. Его используют, когда нужно выдать единое значение и тут же завершиться.
172+
<b>AsyncSubject </b>также хранит последнее значение. Разница в том, что он не выдает данных до тех пор, пока не завершится последовательность. Его используют, когда нужно выдать единое значение и тут же завершиться.
173173

174174
```JAVA
175175
AsyncSubject<Integer> s = AsyncSubject.create();
@@ -186,7 +186,7 @@ s.onCompleted();
186186
Обратите внимание, что если бы мы не вызвали <b>s.onCompleted()</b>, этот код ничего бы не напечатал.
187187

188188
<h2>Неявная инфраструктура</h2>
189-
Как мы уже упоминали, существуют принципы, которые могут быть не очевидны в коде. Один из важнейших заключается в том, что ни одно событие не будет выдано после того, как последовательность завершена (<b>onError </b>или <b>onCompleted</b>). Реализация <b>subject</b>’ уважает эти принципы:
189+
Как мы уже упоминали, существуют принципы, которые могут быть неочевидны в коде. Один из важнейших заключается в том, что ни одно событие не будет выдано после того, как последовательность завершена (<b>onError </b>или <b>onCompleted</b>). Реализация <b>subject</b>’ уважает эти принципы:
190190

191191
```JAVA
192192
Subject<Integer, Integer> s = ReplaySubject.create();
@@ -205,7 +205,7 @@ s.onNext(2);
205205
<anchor>notes</anchor>
206206
[1] Или знакомые всем Event Listeners. – <i>Примеч. Автора</i>
207207
[2] Я, все-таки считаю, что ключевой перегрузкой тут является именно версия с Observer в качестве аргумента, в оригинале в качестве примера приводится версия subscribe(Subscriber<? super T> subscriber) – <i>Примеч. Автора</i>
208-
[3] Я буду использовать слово «выдавать» чтобы описать событие передачи данных от Observable Observer’у (to emit в ориг.). – <i>Примеч. Автора</i>
208+
[3] Я буду использовать слово «выдавать», чтобы описать событие передачи данных от Observable Observer’у (to emit в ориг.). – <i>Примеч. Автора</i>
209209
[4] Автор использует термин последовательность (sequence), чтобы обозначить множество всех данных, которые может выдать Observable. – <i>Примеч. Автора</i>
210210

211211
#### Продолжить чтение

0 commit comments

Comments
 (0)