#68 Added class diagram and referenced it from the README.md
This commit is contained in:
parent
a8b7dd5a53
commit
18618dfbec
@ -627,6 +627,8 @@ validation and for building to order
|
|||||||
## <a name="async-method-invocation">Async Method Invocation</a> [↑](#list-of-design-patterns)
|
## <a name="async-method-invocation">Async Method Invocation</a> [↑](#list-of-design-patterns)
|
||||||
**Intent:** Asynchronous method invocation is pattern where the calling thread is not blocked while waiting results of tasks. The pattern provides parallel processing of multiple independent tasks and retrieving the results via callbacks or waiting until everything is done.
|
**Intent:** Asynchronous method invocation is pattern where the calling thread is not blocked while waiting results of tasks. The pattern provides parallel processing of multiple independent tasks and retrieving the results via callbacks or waiting until everything is done.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
**Applicability:** Use async method invocation pattern when
|
**Applicability:** Use async method invocation pattern when
|
||||||
* You have multiple independent tasks that can run in parallel
|
* You have multiple independent tasks that can run in parallel
|
||||||
* You need to improve performance of running a group of sequential tasks
|
* You need to improve performance of running a group of sequential tasks
|
||||||
|
BIN
async-method-invocation/etc/async-method-invocation.png
Normal file
BIN
async-method-invocation/etc/async-method-invocation.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 36 KiB |
85
async-method-invocation/etc/async-method-invocation.ucls
Normal file
85
async-method-invocation/etc/async-method-invocation.ucls
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<class-diagram version="1.1.8" icons="true" automaticImage="PNG" always-add-relationships="false" generalizations="true"
|
||||||
|
realizations="true" associations="true" dependencies="false" nesting-relationships="true">
|
||||||
|
<interface id="1" language="java" name="com.iluwatar.async.method.invocation.AsyncExecutor"
|
||||||
|
project="async-method-invocation"
|
||||||
|
file="/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncExecutor.java" binary="false"
|
||||||
|
corner="BOTTOM_RIGHT">
|
||||||
|
<position height="-1" width="-1" x="220" y="404"/>
|
||||||
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</display>
|
||||||
|
</interface>
|
||||||
|
<class id="2" language="java" name="com.iluwatar.async.method.invocation.ThreadAsyncExecutor.CompletableResult"
|
||||||
|
project="async-method-invocation"
|
||||||
|
file="/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java"
|
||||||
|
binary="false" corner="BOTTOM_RIGHT">
|
||||||
|
<position height="-1" width="-1" x="980" y="173"/>
|
||||||
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</display>
|
||||||
|
</class>
|
||||||
|
<interface id="3" language="java" name="com.iluwatar.async.method.invocation.AsyncResult"
|
||||||
|
project="async-method-invocation"
|
||||||
|
file="/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncResult.java" binary="false"
|
||||||
|
corner="BOTTOM_RIGHT">
|
||||||
|
<position height="-1" width="-1" x="580" y="443"/>
|
||||||
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</display>
|
||||||
|
</interface>
|
||||||
|
<interface id="4" language="java" name="com.iluwatar.async.method.invocation.AsyncCallback"
|
||||||
|
project="async-method-invocation"
|
||||||
|
file="/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/AsyncCallback.java" binary="false"
|
||||||
|
corner="BOTTOM_RIGHT">
|
||||||
|
<position height="-1" width="-1" x="156" y="173"/>
|
||||||
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</display>
|
||||||
|
</interface>
|
||||||
|
<class id="5" language="java" name="com.iluwatar.async.method.invocation.ThreadAsyncExecutor"
|
||||||
|
project="async-method-invocation"
|
||||||
|
file="/async-method-invocation/src/main/java/com/iluwatar/async/method/invocation/ThreadAsyncExecutor.java"
|
||||||
|
binary="false" corner="BOTTOM_RIGHT">
|
||||||
|
<position height="-1" width="-1" x="580" y="173"/>
|
||||||
|
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</display>
|
||||||
|
</class>
|
||||||
|
<dependency id="6">
|
||||||
|
<end type="SOURCE" refId="5"/>
|
||||||
|
<end type="TARGET" refId="4"/>
|
||||||
|
</dependency>
|
||||||
|
<dependency id="7">
|
||||||
|
<end type="SOURCE" refId="5"/>
|
||||||
|
<end type="TARGET" refId="3"/>
|
||||||
|
</dependency>
|
||||||
|
<nesting id="8">
|
||||||
|
<end type="SOURCE" refId="5"/>
|
||||||
|
<end type="TARGET" refId="2"/>
|
||||||
|
</nesting>
|
||||||
|
<realization id="9">
|
||||||
|
<end type="SOURCE" refId="5"/>
|
||||||
|
<end type="TARGET" refId="1"/>
|
||||||
|
</realization>
|
||||||
|
<realization id="10">
|
||||||
|
<end type="SOURCE" refId="2"/>
|
||||||
|
<end type="TARGET" refId="3"/>
|
||||||
|
</realization>
|
||||||
|
<classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
|
||||||
|
sort-features="false" accessors="true" visibility="true">
|
||||||
|
<attributes public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
<operations public="true" package="true" protected="true" private="true" static="true"/>
|
||||||
|
</classifier-display>
|
||||||
|
<association-display labels="true" multiplicity="true"/>
|
||||||
|
</class-diagram>
|
Loading…
x
Reference in New Issue
Block a user