Превращает вызовы методов в поставленные в очередь объекты Command, обрабатываемые по одному собственным выделенным рабочим потоком объекта, при этом вызывающий объект немедленно возвращает Future, а не блокируется. Структуры актерной модели, такие как Akka (и ранний Android AsyncTask), работают таким образом — каждый актор последовательно обрабатывает свой собственный почтовый ящик.
Пример
@Aspect@ComponentpublicclassLoggingAspect {
@Around("@annotation(com.acme.Loggable)")publicObjectlogExecutionTime(ProceedingJoinPoint pjp)throws Throwable {
longstart= System.currentTimeMillis();
Objectresult= pjp.proceed(); // invokes the real method
log.info("{} took {}ms", pjp.getSignature(), System.currentTimeMillis() - start);
return result;
}
}
Итог
Превращает вызовы методов в поставленные в очередь объекты Command, обрабатываемые по одному собственным выделенным рабочим потоком объекта, при этом вызывающий объект немедленно возвращает Future, а не блокируется.
Что такое шаблон Active Object и какие реальные платформы его реали… · Sobeso