Update README.md
This commit is contained in:
parent
9b464e0be1
commit
8983f9c11c
@ -9,14 +9,16 @@ tags:
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Intent
|
## Intent
|
||||||
Callback is a piece of executable code that is passed as an argument to other code, which is expected to call back
|
|
||||||
(execute) the argument at some convenient time.
|
Callback is a piece of executable code that is passed as an argument to other code, which is
|
||||||
|
expected to call back (execute) the argument at some convenient time.
|
||||||
|
|
||||||
## Explanation
|
## Explanation
|
||||||
|
|
||||||
Real world example
|
Real world example
|
||||||
|
|
||||||
> We need to be notified after executing task has finished. We pass a callback method for the executor and wait for it to call back on us.
|
> We need to be notified after executing task has finished. We pass a callback method for
|
||||||
|
> the executor and wait for it to call back on us.
|
||||||
|
|
||||||
In plain words
|
In plain words
|
||||||
|
|
||||||
@ -24,7 +26,9 @@ In plain words
|
|||||||
|
|
||||||
Wikipedia says
|
Wikipedia says
|
||||||
|
|
||||||
> In computer programming, a callback, also known as a "call-after" function, is any executable code that is passed as an argument to other code; that other code is expected to call back (execute) the argument at a given time.
|
> In computer programming, a callback, also known as a "call-after" function, is any executable
|
||||||
|
> code that is passed as an argument to other code; that other code is expected to call
|
||||||
|
> back (execute) the argument at a given time.
|
||||||
|
|
||||||
**Programmatic Example**
|
**Programmatic Example**
|
||||||
|
|
||||||
@ -61,7 +65,7 @@ public final class SimpleTask extends Task {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Finally here's how we execute a task and receive a callback when it's finished.
|
Finally, here's how we execute a task and receive a callback when it's finished.
|
||||||
|
|
||||||
```java
|
```java
|
||||||
var task = new SimpleTask();
|
var task = new SimpleTask();
|
||||||
@ -69,13 +73,15 @@ Finally here's how we execute a task and receive a callback when it's finished.
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Class diagram
|
## Class diagram
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## Applicability
|
## Applicability
|
||||||
|
|
||||||
Use the Callback pattern when
|
Use the Callback pattern when
|
||||||
|
|
||||||
* when some arbitrary synchronous or asynchronous action must be performed after execution of some defined activity.
|
* when some arbitrary synchronous or asynchronous action must be performed after execution of some defined activity.
|
||||||
|
|
||||||
## Real world examples
|
## Real world examples
|
||||||
|
|
||||||
* [CyclicBarrier](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) constructor can accept callback that will be triggered every time when barrier is tripped.
|
* [CyclicBarrier](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html#CyclicBarrier%28int,%20java.lang.Runnable%29) constructor can accept a callback that will be triggered every time a barrier is tripped.
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 18 KiB |
@ -8,11 +8,6 @@ package com.iluwatar.callback {
|
|||||||
interface Callback {
|
interface Callback {
|
||||||
+ call() {abstract}
|
+ call() {abstract}
|
||||||
}
|
}
|
||||||
class LambdasApp {
|
|
||||||
- LOGGER : Logger {static}
|
|
||||||
- LambdasApp()
|
|
||||||
+ main(args : String[]) {static}
|
|
||||||
}
|
|
||||||
class SimpleTask {
|
class SimpleTask {
|
||||||
- LOGGER : Logger {static}
|
- LOGGER : Logger {static}
|
||||||
+ SimpleTask()
|
+ SimpleTask()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user