Как называется этот шаблон проектирования с использованием Performer?

#java #design-patterns

#java #шаблоны проектирования

Вопрос:

Как называется шаблон, который использовал Retrofit 2.0 и некоторые другие библиотеки?

Старая версия

некоторый менеджер может загружать синхронизацию и асинхронность данных двумя разными методами

 SomeClass obj = someManager.getDataSync();
SomeClass2 obj = otherManager.getBigDataSync()
SomeClass3 obj = otherManager2.getMyDataSync()
  

или

 someManager.loadData(callback)
otherManager.loadData(callback2)
otherManager2.loadData(callbak3)
  

Теперь istead использует вспомогательный класс

Новая версия

 Performer<T> performer = someManager.getSomeData(...);
  

затем мы можем выполнить это действие sync или asyc со слушателем

 T data = performer.performSync();
  

или

 performer.performAsync(callback);
  

Комментарии:

1. О какой строке вы спрашиваете? performer = .... или performer.performSync() ?

2. Обо всех строках проверьте правки

Ответ №1:

Это похоже на асинхронный шаблон на основе событий, как описано здесь https://msdn.microsoft.com/en-us/library/wewwczdw (v = против 110).aspx

По сути, это шаблон параллелизма, позволяющий легко использовать как синхронные, так и асинхронные версии методов.

Комментарии:

1. Да, это выглядит так.