Варианты проектирования класса...

Тема в разделе "Lotus - Программирование", создана пользователем fedotxxl, 12 июн 2009.

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Привет)
    Думаю как лучше спроектировать - посоветуйте
    Предположим у меня есть класс, получает на вход notesDocument, имеет набор функций.
    Как лучше сделать: nd забивать в конструкторе / nd передавать в параметр каждой функции. Второе мне больше нравится, т.к. класс не нужно переинициализировать для нового документа, но насколько это правильно с точки зрения проектирования
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    все зависит от задач, которые будут возлагаться на класс...
    если это прокси-класс для NotesDocument, то как-то глупо передавать в каждый метод объект документа, а если это класс для обработки многих документов одинаковым способом, то смысл есть, но будет ли он отличаться от процедуры?.. если нет, то в классе смысла нет, если одна процедура будет вызывать множество других, то, возможно, имеет смысл инкапсулировать все это в класс, но к ООП это не будет иметь отношения... такое в общем...
     
  3. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    с т.з. проектирования существуют статические методы в классах :lol: когда инициализация и вовсе не нужна
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    lmike, ты имхо запутываешь возможности языка и понятия :lol:
     
  5. K-Fire

    K-Fire Гость

    Если бы в лотусе еще были статические методы... Эх, мечты мечты :lol:
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    что тебе мешает имитировать их? создал библиотеку, создал класс, в ней глобальную переменную-объект, там же инициализровал и вуаля :lol:
     
  7. K-Fire

    K-Fire Гость

    Именно так и делаю, суть в том что это имитация. IBM-у никто не мешал, по крайней мере начиная с 6й версии, реализовать больше возможностей для ООП. Хотя о чем я вообще говорю, если до сих пор нет нормального редактора для классов в скрипте.


    PS 8.5.1 бета якобы вышла уже недели 2 назад, кто-нить в курсе где скачать ?
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а собсно, где статические классы есть кроме явы?.. в сипипи разве были?.. в паскале до версии делфи 6 вроде не было ))
    смалтолк не знаю... короче кроме явы не знаю где они есть :lol:)
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    я ничего не запутываю :(
    в С++ тоже такие есть, в шарпее
    в паскале (объектном) - просто не помню, вроде тоже были
    в smalltalk нет такого названия, но "поведение" такое есть (почти не знаю смолтолк)

    для ООП - это "нормальный тип" вызовов
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    lmike, знаешь, наверное я о чем-то другом думал, когда тебе отвечал ))
    статические методы тут вполне подойдут, смотря чего надо...
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    в LDN они есть, реализовано в java ;), надо не мечтать, а пользоваться :)
    Lotus Script вынуждены пользовать в UI, в остальных случаях, я лично, не вижу целесообразным
     
  12. K-Fire

    K-Fire Гость

    lmike, ты говоришь так, как будто у тебя во всех серьезных приложениях используется ява. И везде где только можно делаешь вызовы Java-агентов, LSJ-бриджи и т.п. И на любую кнопку 1й раз у тебя всегда JVM стартует? И диалоги ты наверное на SWT делаешь, или на чем там еще в яве можно?

    И пишешь ее ты наверное в эклипсе, и там же отлаживаешь? Только тогда объясни, зачем тогда тебе лотус вообще нужен? :(
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    в нем письма удобно отправлять )))
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    я не вижу смысла противопоставления, джава - родной язык для LDN (с оговоркой - с опред. версии ;) )
    джава код я пишу почти вслепую, в убогом дизайнере нотусов (при условии его малого объема ;) )
    домино замечательная платформа и я не раз это подчеркивал
    супрайз, но жвм у домины будет стартовать один раз ;), от этого и проистекают нек. "особенности" использования
     
  15. K-Fire

    K-Fire Гость

    C какой?

    Может тогда поделишься опытом? В действительности мне уже давно хочется уйти от скрипта, но я пока не вижу как в существующей стандартной архитектуре лотус-приложений можно по максимуму задействовать яву.
     
  16. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Не означает ли это, что можно задать некие "глобальные" объекты, с временем жизни большим, чем у исполняемого модуля? Например, Java-объект, порождённый в QuerySave формы, может ли стать каким-то образом доступным в агенте? Я не имею в виду искусственную эмуляцию долгоживущих объектов через такие механизмы, как сериализация, а реальную. Относится ли данное поведение и к объектам-обёрткам над notes-объектами?
     
  17. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    зачем так корячиться, поставьте себе эклипс или еще что, настройте связку с лотусом, пишите и дебажьте код..
     
  18. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    не помню, как в 4.6, но с R5 можно было уже писать на джава, LS2J бридж появился, по-моему в 6-ке

    а какой опыт нужен? В дизайнере есть java объекты, в либах и агентах к примеру
    из формах пока нельзя "напрямую" вызвать java, но это чисто UI заморочки

    Т.о. библиотеки можно писать на java (для бэкэнда), можно создавать собственные jar и цеплять их "снаружи"
    композитные приложения в 8-ке...


    с нотусёвыми объектами сложнее :) - ониж натив вызывают (можно напороться на крэш в длл). Очереди юзал, под клиентом...
    долгоживущий объект есть в Нотусах и Домине - очереди (недостаток - малый объем хранения), но их проще через АПИ юзать

    есть примеры реализаций адынов для джава кода http://www.nsftools.com/tips/JavaTips.htm#javaaddin

    остаётся вопрос передачи объектов, но как мне кажется (не пробывал) заюзать статик или синглтон из внешней библы - не составит проблем
    вопрос многотредовости я не исследовал (насколько нервно ИБМ жвм на это отреагирует)

    на 64-бит линухе такая связка проблематична ;) - у Нотусей 32бит библы с жёсткой (хардкоденой) привязкой
     
  19. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    имеется в виду что джава 64 бита ? или что джава 32 бита не работает на 64 битной линухе ?
     
  20. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    эклипс 64 бит, джава 64 бит, эклипс 32 бит взлетает, но нехоца держать 2-а эклипса
    нотусёвая либа - 32 бит, под 64 жвм не взлетела (падает в корку) после прописывания LD
    джава 32-бит работает в 64 бит линухе
     
Загрузка...

Поделиться этой страницей