Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void doubleClick();
- public void hover();
- /*
- я бы эти методы объявила как
- LazyElement doubleClick();
- LazyElement hover();
- не надо использовать в интерфейсах модификаторы доступа(public)
- все методы, объявленные в интерфейсе - в классе будут имплементированы как public
- собственно - интерфейс и дает список того - что класс будет выдывать наружу)
- */
- ****************************
- public LazyElement get(int index) {
- LazyElement element = new LazyCollectionNthElement(this, index);
- return element;
- }
- /*
- можно в одну строку
- return new LazyCollectionNthElement(this, index);
- */
- *************************************
- public class LazyCollectionNthElement extends AbstractLazyElement {
- private LazyCollection parentCollection;
- private int index;
- public LazyCollectionNthElement(LazyCollection parentCollection, int index) {
- this.parentCollection = parentCollection;
- this.index = index;
- }
- /*
- с этим - порядок - поля объекта + конструктор
- */
- public WebElement getWrappedEntity() {
- return parentCollection.get(index);
- }
- /*
- а вот каждый getWrappedEntity() - это максимально быстрый путь получить
- вебэлемент(для лейзи элемента) или список вебэлементов (для лейзи-коллекции)
- у родительской коллекции тоже есть getWrappedEntity()
- и он вовзращает список вебэлементов
- и вот нам надо - получить этот список
- и из списка - по индексу - получить вебэлемент
- и вернуть его
- а так - получаем бег по кругу
- посмотри - как реализован - get
- и снова создастся лейзи-объект
- у которого при вызове getWrappedEntity()
- создастся лейзи-объект
- у попа была собака)))
- есть такой прием - называется рекурсия
- это надо уметь и применять к месту)
- почитай)
- математически - красивейшая вещь
- я умею и люблю)
- но - надо четко понимать что делаешь -
- иначе - бесконечно выполняемые программки - тут как тут)
- итог
- в getWrappedEntity() - максимально быстро иди к получению результата
- вебэлемент(для лейзи элемента) или список вебэлементов (для лейзи-коллекции)
- тут - уходим от лейзи и приходим к реальности
- и в этом пути - используем getWrappedEntity() родительской сущности и данные
- про то, как эту лейзи-сущность искать
- */
- public String toString() {
- return "WebElement with index " + index + element.toString() + " from " + parentCollection;
- }
- /*
- вот это я не поняла)
- хто это - element.toString() ))))
- нам надо описать - что это за зверь
- родительская сущность - про себя сама расскажет
- и нам надо уточнить про индекс
- и усе)
- что-то типа такого
- parentCollection.toString() + "[" + index + "]"
- нам не надо рассказывать - что это за найденный элемент
- (это вообще вещь эфемерная - мы каждый раз это переискиваем)
- а вот как мы это искали, по какому адресу - рассказать надо)
- */
- **************************
- public abstract class AbstractLazyElement implements LazyElement {
- public WebElement element;
- /*
- ага, вот эта прелесть)
- она ж вроде вообще не применяется
- прибей ее )
- */
Advertisement
Add Comment
Please, Sign In to add comment