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

  • Автор темы fedotxxl
  • Дата начала
F

fedotxxl

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

Akupaka

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
с т.з. проектирования существуют статические методы в классах :lol: когда инициализация и вовсе не нужна
 
A

Akupaka

lmike, ты имхо запутываешь возможности языка и понятия :lol:
 
K

K-Fire

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

Akupaka

что тебе мешает имитировать их? создал библиотеку, создал класс, в ней глобальную переменную-объект, там же инициализровал и вуаля :lol:
 
K

K-Fire

что тебе мешает имитировать их? создал библиотеку, создал класс, в ней глобальную переменную-объект, там же инициализровал и вуаля :lol:

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


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

Akupaka

а собсно, где статические классы есть кроме явы?.. в сипипи разве были?.. в паскале до версии делфи 6 вроде не было ))
смалтолк не знаю... короче кроме явы не знаю где они есть :lol:)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
я ничего не запутываю :(
в С++ тоже такие есть, в шарпее
в паскале (объектном) - просто не помню, вроде тоже были
в smalltalk нет такого названия, но "поведение" такое есть (почти не знаю смолтолк)

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

Akupaka

lmike, знаешь, наверное я о чем-то другом думал, когда тебе отвечал ))
статические методы тут вполне подойдут, смотря чего надо...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
Если бы в лотусе еще были статические методы... Эх, мечты мечты :(
в LDN они есть, реализовано в java ;), надо не мечтать, а пользоваться :)
Lotus Script вынуждены пользовать в UI, в остальных случаях, я лично, не вижу целесообразным
 
K

K-Fire

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

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

Akupaka

в нем письма удобно отправлять )))
 

lmike

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

И пишешь ее ты наверное в эклипсе, и там же отлаживаешь? Только тогда объясни, зачем тогда тебе лотус вообще нужен? :)
я не вижу смысла противопоставления, джава - родной язык для LDN (с оговоркой - с опред. версии ;) )
джава код я пишу почти вслепую, в убогом дизайнере нотусов (при условии его малого объема ;) )
домино замечательная платформа и я не раз это подчеркивал
супрайз, но жвм у домины будет стартовать один раз ;), от этого и проистекают нек. "особенности" использования
 
K

K-Fire

я не вижу смысла противопоставления, джава - родной язык для LDN (с оговоркой - с опред. версии :) )
C какой?

джава код я пишу почти вслепую, в убогом дизайнере нотусов (при условии его малого объема ;) )
домино замечательная платформа и я не раз это подчеркивал
супрайз, но жвм у домины будет стартовать один раз ;), от этого и проистекают нек. "особенности" использования

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

TIA

супрайз, но жвм у домины будет стартовать один раз wink.gif, от этого и проистекают нек. "особенности" использования

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

Kee_Keekkenen

джава код я пишу почти вслепую, в убогом дизайнере нотусов (при условии его малого объема :) )

зачем так корячиться, поставьте себе эклипс или еще что, настройте связку с лотусом, пишите и дебажьте код..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
не помню, как в 4.6, но с R5 можно было уже писать на джава, LS2J бридж появился, по-моему в 6-ке

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

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


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

есть примеры реализаций адынов для джава кода

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

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

Kee_Keekkenen

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

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
470
эклипс 64 бит, джава 64 бит, эклипс 32 бит взлетает, но нехоца держать 2-а эклипса
нотусёвая либа - 32 бит, под 64 жвм не взлетела (падает в корку) после прописывания LD
джава 32-бит работает в 64 бит линухе
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!