Commit d6c9d45f authored by Blanke, Daniela's avatar Blanke, Daniela
Browse files

Update design-patterns-observer.html

parent f5f3a380
Pipeline #8019 passed with stage
in 1 minute and 15 seconds
......@@ -130,4 +130,4 @@ btn.setOnAction((ActionEvent e) -> System.out.println("Clicked button"));
}
</code></pre>
<p>Die Klasse <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/SubmissionPublisher.html"><code>SubmissionPublisher</code></a> bietet eine Standard-Implementierung des <code>Publisher</code>-Interface. Nachrichten, die über die Methode <code>submit</code> (Zeile 6) eingereicht werden, sendet der Publisher an alle aktuell registrierten Subscriber, bis er über die Methode <code>close</code> (Zeile 7) geschlossen wird. Hervorzuheben ist, dass ein Publisher die Nachrichten asynchron zustellt, d.h. er wartet nicht auf eine Empfangs- oder Verarbeitungsbestätigung der Subscriber, die ihrerseits jeweils in einem parallelen Thread (s. Kapitel <a href="#unit-threads" class="navigate">Threads in Java</a>) ablaufen. Jeder aktuelle Subscriber erhält neu übermittelte Nachrichten in derselben Reihenfolge, wie sie versendet werden - außer bei Exceptions (<code>onError</code>) oder bei Timeouts. Wenn eine Nachricht über <code>offer</code> anstatt <code>submit</code> versendet wird, kann ein Timeout definiert werden, falls ein Subscriber zu lange braucht, um die Nachricht entgegenzunehmen. Auf diese Weise können Publisher als nicht blockierende, <a href="http://www.reactive-streams.org/">reaktive Streams</a> fungieren. Damit der Subscriber-Thread ausreichend Zeit zur Verarbeitung der Nachrichten hat, schläft der Main-Thread im obigen Code eine Weile (Zeile 8). Das ist für die Praxis keine gute Lösung sondern ein <a href="https://de.wikipedia.org/wiki/Anti-Pattern">Anti-Pattern</a>, aber es trägt hier zur Erhaltung der Einfachheit des Beispiels bei.</p>
\ No newline at end of file
<p>Die Klasse <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/SubmissionPublisher.html"><code>SubmissionPublisher</code></a> bietet eine Standard-Implementierung des <code>Publisher</code>-Interface. Nachrichten, die über die Methode <code>submit</code> (Zeile 6) eingereicht werden, sendet der Publisher an alle aktuell registrierten Subscriber, bis er über die Methode <code>close</code> (Zeile 7) geschlossen wird. Hervorzuheben ist, dass ein Publisher die Nachrichten asynchron zustellt, d.h. er wartet nicht auf eine Empfangs- oder Verarbeitungsbestätigung der Subscriber, die ihrerseits jeweils in einem parallelen Thread (s. Kapitel <a href="#unit-threads" class="navigate">Threads in Java</a>) ablaufen. Jeder aktuelle Subscriber erhält neu übermittelte Nachrichten in derselben Reihenfolge, wie sie versendet werden - außer bei Exceptions (<code>onError</code>) oder bei Timeouts. Wenn eine Nachricht über <code>offer</code> anstatt <code>submit</code> versendet wird, kann ein Timeout definiert werden, falls ein Subscriber zu lange braucht, um die Nachricht entgegenzunehmen. Auf diese Weise können Publisher als nicht blockierende, <a href="http://www.reactive-streams.org/">reaktive Streams</a> fungieren. Damit der Subscriber-Thread ausreichend Zeit zur Verarbeitung der Nachrichten hat, schläft der Main-Thread im obigen Code eine Weile (Zeile 8). Das ist für die Praxis keine gute Lösung, sondern ein <a href="https://de.wikipedia.org/wiki/Anti-Pattern">Anti-Pattern</a>, aber es trägt hier zur Erhaltung der Einfachheit des Beispiels bei.</p>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment