#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. Да, это выглядит так.