33 lines
		
	
	
		
			836 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			836 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | @startuml | ||
|  | package com.iluwatar.halfsynchalfasync { | ||
|  |   class App { | ||
|  |     - LOGGER : Logger {static} | ||
|  |     + App() | ||
|  |     - ap(i : long) : long {static} | ||
|  |     + main(args : String[]) {static} | ||
|  |   } | ||
|  |   ~class ArithmeticSumTask { | ||
|  |     - numberOfElements : long | ||
|  |     + ArithmeticSumTask(numberOfElements : long) | ||
|  |     + call() : Long | ||
|  |     + onError(throwable : Throwable) | ||
|  |     + onPostCall(result : Long) | ||
|  |     + onPreCall() | ||
|  |   } | ||
|  |   interface AsyncTask<O> { | ||
|  |     + call() : O {abstract} | ||
|  |     + onError(Throwable) {abstract} | ||
|  |     + onPostCall(O) {abstract} | ||
|  |     + onPreCall() {abstract} | ||
|  |   } | ||
|  |   class AsynchronousService { | ||
|  |     - LOGGER : Logger {static} | ||
|  |     - service : ExecutorService | ||
|  |     + AsynchronousService(workQueue : BlockingQueue<Runnable>) | ||
|  |     + close() | ||
|  |     + execute(task : AsyncTask<T>) | ||
|  |   } | ||
|  | } | ||
|  | ArithmeticSumTask ..+ App | ||
|  | ArithmeticSumTask ..|> AsyncTask  | ||
|  | @enduml |