julia_v_iluhina

Untitled

Oct 6th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.58 KB | None | 0 0
  1.  public void doubleClick();
  2.  public void hover();
  3. /*
  4.     я бы эти методы объявила как
  5.     LazyElement doubleClick();
  6.     LazyElement hover();
  7.  
  8.     не надо использовать в интерфейсах модификаторы доступа(public)
  9.     все методы, объявленные в интерфейсе - в классе будут имплементированы как public
  10.  
  11.     собственно - интерфейс и дает список того - что класс будет выдывать наружу)
  12. */
  13. ****************************
  14. public LazyElement get(int index) {
  15.         LazyElement element = new LazyCollectionNthElement(this, index);
  16.         return element;
  17. }
  18. /*
  19.     можно в одну строку
  20.     return new LazyCollectionNthElement(this, index);
  21. */
  22. *************************************
  23. public class LazyCollectionNthElement extends AbstractLazyElement {
  24.  
  25.     private LazyCollection parentCollection;
  26.     private int index;
  27.  
  28.     public LazyCollectionNthElement(LazyCollection parentCollection, int index) {
  29.         this.parentCollection = parentCollection;
  30.         this.index = index;
  31.     }
  32.     /*
  33.         с этим - порядок - поля объекта + конструктор
  34.     */
  35.  
  36.     public WebElement getWrappedEntity() {
  37.         return parentCollection.get(index);
  38.     }
  39.     /*
  40.         а вот каждый getWrappedEntity() - это максимально быстрый путь получить
  41.         вебэлемент(для лейзи элемента) или список вебэлементов (для лейзи-коллекции)
  42.  
  43.         у родительской коллекции тоже есть getWrappedEntity()
  44.         и он вовзращает список вебэлементов
  45.  
  46.         и вот нам надо - получить этот список
  47.         и из списка - по индексу - получить вебэлемент
  48.  
  49.         и вернуть его
  50.  
  51.         а так - получаем бег по кругу
  52.         посмотри - как реализован - get
  53.         и снова создастся лейзи-объект
  54.         у которого при вызове getWrappedEntity()
  55.         создастся лейзи-объект
  56.  
  57.         у попа была собака)))
  58.  
  59.         есть такой прием  - называется рекурсия
  60.         это надо уметь и применять к месту)
  61.         почитай)
  62.         математически - красивейшая вещь
  63.         я умею и люблю)
  64.         но - надо четко понимать что делаешь -
  65.         иначе - бесконечно выполняемые программки - тут как тут)
  66.  
  67.         итог
  68.         в getWrappedEntity() - максимально быстро иди к получению результата
  69.         вебэлемент(для лейзи элемента) или список вебэлементов (для лейзи-коллекции)
  70.         тут - уходим от лейзи и приходим к реальности
  71.         и в этом пути - используем getWrappedEntity() родительской сущности и данные
  72.         про то, как эту лейзи-сущность искать
  73.     */
  74.  
  75.     public String toString() {
  76.         return "WebElement with index " + index + element.toString() + " from " + parentCollection;
  77.     }
  78. /*
  79.     вот это я не поняла)
  80.     хто это - element.toString() ))))
  81.  
  82.     нам надо описать - что это за зверь
  83.     родительская сущность - про себя сама расскажет
  84.     и нам надо уточнить про индекс
  85.     и усе)
  86.  
  87.     что-то типа такого
  88.     parentCollection.toString() + "[" + index + "]"
  89.  
  90.     нам не надо рассказывать - что это за найденный элемент
  91.     (это вообще вещь эфемерная - мы каждый раз это переискиваем)
  92.  
  93.     а вот как мы это искали, по какому адресу - рассказать надо)
  94. */
  95. **************************
  96. public abstract class AbstractLazyElement implements LazyElement {
  97.  
  98.     public WebElement element;
  99. /*
  100.     ага, вот эта прелесть)
  101.     она ж вроде вообще не применяется
  102.     прибей ее )
  103. */
Advertisement
Add Comment
Please, Sign In to add comment