|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Добрый день, заранее прошу прощения за тупой вопрос: У меня есть рейсы и список маршрутов, на каждый рейс один из фиксированного списка маршрутов(1н ко многим) Создаю классы и тех и других. Как правильно мне привязать маршруты к рейсам? "По старинке" вне ООП яб бы просто в списке или таблице или классе в переменную номера маршрута заносил код из списка маршрутов, а затем по функции обращаясь к списку маршрутов извлекал наименование и другие характеристики. А как быть соблюдая принципы ООП? Передавать значение маршрута в соотв.свойство объекта рейса, не раздуются ли данные? Делать наследование? Рейс наследуется от маршрута? с чего это у них разные методы, я лучше сделаю наследование какое нибудь сложного рейса от рейса, чем связывать разные сущности. Может агрегацией? в классе рейса создаю переменную класса маршрут. И что? теперь при создании каждого объекта рейса мне еще будет в нем создаваться объект маршрута? зачем? их маршрутов допустим всего 40шт. они уже созданы в main-е и не меняются ни как от наличия или отсутствия рейсов, зачем все раздувать? Или нужно при создании объекта рейса в вх.параметры передавать готовый объект маршрута? при этом же только ссылка передается? а создаваемый внутри объект маршрута жив пока использую объект и это не сильно увиличивает объем? Или передавать извлекая значения методами из одного класса в метод другому? - очень похоже на старый классический, процедурный способ. Знакомы java-сты говорят - учи spring не лезь в дебри. В интернете нечего кроме совета: в книге: Head First. Паттерны проектирования. Бейтс Берт, Фримен Эрик - все объяснено не нашел. Пролистал, большие сомнения, чтоб ответить на такой вроде бы простой вопрос: академический способ использования справочников в модели ООП надо прочитать всю книгу.. Помогите пожалуйста новичку! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2020, 20:35 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8, У каждого рейса есть уникальный маршрут, который определяется точками на карте в пространстве и времени. Т.е. каждый рейс хранит эти точки у себя в объекте. Для создания рейса нужна фабрика, которая заполняет данные, в т.ч. и маршрут рейса, по неким правилам. Где-то так. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 05:59 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8 Как правильно мне привязать маршруты к рейсам? Полностью зависит от того, что вы будете с этим делать, как вы работаете с этим дальше, зачем вам это вообще нужно. Сергей Прокопенко 8 "По старинке" вне ООП яб бы просто в списке или таблице или классе в переменную номера маршрута заносил код из списка маршрутов, а затем по функции обращаясь к списку маршрутов извлекал наименование и другие характеристики. Ну и что вам мешает так делать? В ООП вам нужно думать о том, где разместить функцию, как будет организована логика, а не о том, как данные хранить, вам для этого достаточно классов-сущностей или POJO. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 06:06 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8, По ООП нужно больше рисовать и меньше говорить. Например схему связей сущностей. Где она? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 10:34 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8, эталонной библиотекой, реализующей объектно-ориентированный подход к работе с реляционными данными, является Hibernate. В их интерпретации, правильно делать так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 10:35 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8, цель всего этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:06 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA, Это если у него ОРМ есть в проекте. А не jdbc. Мы гадаем, автор молчит. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:28 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA, > эталон Счас придет мембер А и скажет что эталон это спринг. Потом мембер Б скажет что эталон это хранимка в бд. Она быстрее. Потом мембер С скажет что справочники из облака надо брать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:31 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA Hibernate. В их интерпретации, правильно делать так - в приведенном Вами коде нет специфичных для Hibernate нотаций, Вы сумели воспроизвести эталонный пример из JPA ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:39 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Kachalov WGA Hibernate. В их интерпретации, правильно делать так - в приведенном Вами коде нет специфичных для Hibernate нотаций, Вы сумели воспроизвести эталонный пример из JPA +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:40 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Kachalov WGA Hibernate. В их интерпретации, правильно делать так - в приведенном Вами коде нет специфичных для Hibernate нотаций, Вы сумели воспроизвести эталонный пример из JPA ЗЫ. Раз пошла такая гулянка, то аннотации JPA (все без исключения, afaik) являются подмножеством Hibernate. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 11:42 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA, Он спросил про "наследоваться или агрегироваться". Тут вообще код не должен быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 12:01 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA аннотации JPA (все без исключения, afaik) являются подмножеством Hibernate - или EclipseLink? JPA - это спецификация, которую реализуют различные ORM WGA Если я начну ему рассказывать про JPA и Hibernate ... - так начните с простого, с хорошо документированной спецификации, на которую Вы по факту и ссылаетесь ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 12:36 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8 в классе рейса создаю переменную класса маршрут - да (альтернативно - переменную с идентификатором маршрута и подтягивать маршрут по идентификатору при необходимости) Сергей Прокопенко 8 теперь при создании каждого объекта рейса мне еще будет в нем создаваться объект маршрута? зачем? их маршрутов допустим всего 40шт. они уже созданы в main-е и не меняются ни как от наличия или отсутствия рейсов, зачем все раздувать? - либо передавать ссылку на "объект маршрут" (при этом создавать его каждый раз не нужно), либо лениво его инициализировать (подтягивать объект при обращении) Сергей Прокопенко 8 Помогите пожалуйста новичку! - Вы не уточнили как именно Вы обращаетесь к данным в БД и это затрудняет коллегам возможность дать релевантный совет. Если Вы работаете с БД через JDBC одни решения будут проще, если через ORM - другие. В общем желательно описать платформу и технологии задействованные в проекте. Ну и конечно, есть много нюансов связанных с самим проектом (количества данных, частотой обращения к данным и т п). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 12:45 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
WGA ЗЫ. Раз пошла такая гулянка, то аннотации JPA (все без исключения, afaik) являются подмножеством Hibernate. Может наоборот? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 13:34 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
mayton WGA ЗЫ. Раз пошла такая гулянка, то аннотации JPA (все без исключения, afaik) являются подмножеством Hibernate. Может наоборот? Нет. Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 15:30 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
mad_nazgul Нет. Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) - давно пакет javax.persistence.* относится к Hibernate/RedHat? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 16:08 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
mad_nazgul mayton пропущено... Может наоборот? Нет. Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) Ахаха. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 16:21 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Kachalov, Спасибо, вот наверно так и поступлю: буду передавать ссылку на объект маршрута. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 18:31 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Спасибо за комментарии Прочитал еще здесь: https://qna.habr.com/q/368548 Есть работающий php-проект который хотелось не спешно перевести на java. К БД подключение будет тогда jdbc -так наверно проще и "прозрачнее". В объекте "рейс" буду хранить ссылки на объекты маршрутов, машин, водителей и т.д. А обрабатывать логику буду еще 1м верхним классом, тогда примерно будут соответствовать классы - таблицам. А с ORM(т.е. Hibernate) разберусь потом.. если рядом будут коллеги и желающие в это вникать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 18:45 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Сергей Прокопенко 8, Если jdbc то ссылкой вполне может быть FK субд. Так вообще "прозрачно". Как в PHP)) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2020, 20:11 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Kachalov mad_nazgul Нет. Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) - давно пакет javax.persistence.* относится к Hibernate/RedHat? И-и-и... Мы же говорим об имплементации, а не декларации. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 14:30 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Частично попытался ответить на те вопросы, которые смог вычленить из текста. Сергей Прокопенко 8 Как правильно мне привязать маршруты к рейсам? "По старинке" вне ООП яб бы просто в списке или таблице или классе в переменную номера маршрута заносил код из списка маршрутов, а затем по функции обращаясь к списку маршрутов извлекал наименование и другие характеристики. В ООП все так же Сергей Прокопенко 8 Передавать значение маршрута в соотв.свойство объекта рейса, не раздуются ли данные? Нет, не раздуется. Сергей Прокопенко 8 Делать наследование? Рейс наследуется от маршрута? с чего это... So do I причин наследовать так же не вижу. Сергей Прокопенко 8 Или нужно при создании объекта рейса в вх.параметры передавать готовый объект маршрута? при этом же только ссылка передается? Упрощенно - да. Сергей Прокопенко 8 а создаваемый внутри объект маршрута жив пока использую объект и это не сильно увиличивает объем? Если Вы будете СОЗДАВАТЬ оператором new - то потребление памяти будет увеличиваться Если Вы НЕ будете создавать (зачем "создаваемый внутри" мне не понятно) - то НЕ сильно AFAIK ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 14:47 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
mad_nazgul Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) ... И-и-и... Мы же говорим об имплементации, а не декларации. :-) - Вы уж определитесь о чем говорите, а то я по наивности все буквально воспринимаю, написано про "аннотации", так я о них и толкую. А что там за имплементации у аннотации - просветите? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 15:49 |
|
Вопрос от новичка - как правильно в ООП использовать справочники
|
|||
---|---|---|---|
#18+
Kachalov mad_nazgul Т.к. множество аннотаций Hibernate включают в себя множество аннотаций JPA. А вот наоборот - нет. :-) ... И-и-и... Мы же говорим об имплементации, а не декларации. :-) - Вы уж определитесь о чем говорите, а то я по наивности все буквально воспринимаю, написано про "аннотации", так я о них и толкую. А что там за имплементации у аннотации - просветите? Э-э-э т.е. если прописать аннотации, без подключения имплиметанации, хотя бы OpenJPA, то они будут работать?! Вроде бы нет. Хибер поддеривает все аннотации JPA плюс еще есть свои аннотации. Т.о. множество аннотаций хибера больше области аннотаций JPA. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 05:35 |
|
|
start [/forum/topic.php?fid=59&msg=39948334&tid=2120829]: |
0ms |
get settings: |
4ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
65ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
400ms |
get tp. blocked users: |
0ms |
others: | 302ms |
total: | 783ms |
0 / 0 |