julia_v_iluhina

Untitled

Sep 29th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.07 KB | None | 0 0
  1. /*
  2.     Посмотри на информацию о анонимных классах
  3.     https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html#syntax-of-anonymous-classes
  4.  
  5.     анонимный класс можно создать
  6.     используя интерфейс - http://joxi.ru/krDOZldF0XyjkA
  7.  
  8.     если ты внутри метода реализуешь объект анонимного класса
  9.     то все переменные метода, параметры метода - будут доступны внутри объекта анонимного класса
  10.  
  11.  
  12. */
  13.  
  14. *********************
  15. /*
  16.     можно передавать объект анонимного класса как параметр при вызове другого метода
  17. */
  18.  
  19. public ... xxx(final YYY yyy) {
  20.  
  21.     doSomething(new ZZZ() {
  22.       ...
  23.       ....yyy.....//мы можем внутри объекта анонимного класса работать с параметром метода yyy
  24.       ...});
  25.  
  26. }
  27.  
  28. ***********************************************************
  29.  
  30. /*
  31.     Как выше написано - объекты анонимных классов можно создавать используя интерфейсы
  32.  
  33.     Давай вспомним про то как мы реализовали кондишены
  34.  
  35.     У нас был интерфейс с объявленным методом
  36.     Мы использовали дженерики - чтобы позже указать, что возвратит этот объявленный метод
  37.  
  38.     Тут у нас задача похожая
  39.       Что нам должна вернуть команда, значение какого типа?
  40.  
  41.       достаточно посмотреть - что возвращают методы класса AbstractLazyElement,
  42.       в реализации которых
  43.       мы сначала ждем выполнения кондишена и затем - что-то делаем
  44.  
  45.       понимаем - значения разных типов
  46.       потому - нам пригодится решение, которое мы ранее использовали в реализации интерфейча для кондишенов
  47.  
  48.       что мы передадим как параметр для метода нашего нового интерфейса
  49.       смотрим туда же, на реализацию тех же методов в AbstractLazyElement
  50.       мы работаем с WebElement
  51.  
  52.    Вот и все )
  53.         определились с типом параметра для метода
  54.  
  55.         и с типом возвращаемого значения
  56.         (точнее с тем, что мы этот тип зададим уже при создании объекта анонимного класса
  57.         new Xxx<Yyy> () {....})
  58. */
  59.  
  60. *****************
  61.  
  62. /*
  63.     http://joxi.ru/EA4k7zEUDykPD2
  64.  
  65.     Опять вспоминаем кондишены
  66.  
  67.       У нас был кондишен
  68.       который умел выполнять некую проверку
  69.  
  70.       И у нас был класс WaitFor
  71.       который реализовывал ЛОГИКУ ожидания выполнения этой проверки
  72.  
  73.     Тут - та же схема
  74.  
  75.       у нас есть команда - объект анонимного класса
  76.       который умеет выполнить некое действие
  77.       и вернуть результат
  78.  
  79.       и нам нужен объект класса-УМНОГО ВЫЗЫВАТЕЛЯ команды
  80.       мы команду передадим как параметр в метод этого класса-умного вызывателя
  81.  
  82.    И этому умному вызывателю, помимо команды
  83.     нужно передать наш лейзи элемент и кондишен
  84.     (посмотри еще раз на http://joxi.ru/EA4k7zEUDykPD2)
  85.  
  86. */
Advertisement
Add Comment
Please, Sign In to add comment