|
|
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть net.mycompany.package1 и net.mycompany.package2. Классы из package1 активно используют классы из package 2 и наоборот. Нормальная ли такая ситуация (взаимозависимость пакетов)? Чем она грозит? Всем заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 20:01:21 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
в зависимости от архитектуры, предоставляемой этой зависимостью это может быть в разных случаях по-разному. но, вцелом лично мне кажется, что такие зависимости нужно лучше исключить, проведя рефакторинг. можно построить модель в виде графа с зависимостями и переходами и выделить общую функциональность и оформить в виде отдельного класса. Иногда можно обоюдно-зависимые классы внести как внутренний класс (либо как анонимный). Все зависит от задачи и архитектуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 21:45:25 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
А по-моему, циклические зависимости ни при какой архитектуре не должны появляться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 06:36:12 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
artgonchА по-моему, циклические зависимости ни при какой архитектуре не должны появляться чёйто! не должны появляться - а появляются. вообще это особенно заметно в сложных структурах данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 12:55:30 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Ну ладно, с циклическими зависимостями между пакетами я понял: это плохо... А что скажете насчет взаимозависимостей между jar-файлами? Нормально ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 13:06:27 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 13:06:44 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Я бы так точно не делал.... Тут уже выше писали о вынесении обшей функциональности в отдельный модуль/JAR-файл. Лучше так поступить. Древовидную структуру легче поддерживать, чем циклический граф ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 13:09:31 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
VetalНу ладно, с циклическими зависимостями между пакетами я понял: это плохо... А что скажете насчет взаимозависимостей между jar-файлами? Нормально ли это? смотря какая у вас задача? может вы моделируете какой нибудь изощренный способ реализации интервальных деревьев, где каждый узел ссылается на родителя а родитель является контейнером узлов.. опишите приблизительно задачи которые вы решаете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 14:09:47 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
unicornmirageопишите приблизительно задачи которые вы решаете Есть объекты, которые представляют собой сущности бизнес-логики и отображаются на сайте. Эти объекты подчитываются из базы данных. Они находятся в первом пакете. Второй пакет - это Utils, который содержит утилиты, в том числе утилиты работы с url-ами. Второй пакет использует первый, потому что методы из него вычитывают параметры сущности, и исходя из этих параметров строят конечные урлы, которые на сайте ведут к этим сущностям. Первый пакет использует второй, потому что части урлов рассчитываются в первом пакете и хранятся в этом же пакете. Я таким образом кеширую логику формирования урла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 14:17:30 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Vetal unicornmirageопишите приблизительно задачи которые вы решаете Есть объекты, которые представляют собой сущности бизнес-логики и отображаются на сайте. Эти объекты подчитываются из базы данных. Они находятся в первом пакете. Второй пакет - это Utils, который содержит утилиты, в том числе утилиты работы с url-ами. Второй пакет использует первый, потому что методы из него вычитывают параметры сущности, и исходя из этих параметров строят конечные урлы, которые на сайте ведут к этим сущностям. Первый пакет использует второй, потому что части урлов рассчитываются в первом пакете и хранятся в этом же пакете. Я таким образом кеширую логику формирования урла. ну если у вас бизнес-сущности (бины ваши) ссылаются на некие утилитарные методы в других пакетах, тоесли они объявлены как final, либо как интерфейсы то ничего страшного наверное нет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 14:21:48 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
unicornmirageну если у вас бизнес-сущности (бины ваши) ссылаются на некие утилитарные методы в других пакетах, тоесли они объявлены как final, либо как интерфейсы то ничего страшного наверное нет... А какая разница, final они или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:00:40 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Vetal А какая разница, final они или нет? ну в твоем случае это наверно будет существенно, ты ведь не можешь знать заранее тот метод который используется из другого пакета, изменяется или нет кем то другим. использование интерфейсов также может тебя абстрагировать от версий реализации в других пакетах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:05:06 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
unicornmirageну если у вас бизнес-сущности (бины ваши) ссылаются на некие утилитарные методы в других пакетах, тоесли они объявлены как final, либо как интерфейсы то ничего страшного наверное нет...А если утилиты ссылаюцца на пакеты бизнес-логики, то много страшного наверное есть :) Чесно говоря, утилитами их назвать язык не поворачиваецца :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:12:27 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Jozic unicornmirageну если у вас бизнес-сущности (бины ваши) ссылаются на некие утилитарные методы в других пакетах, тоесли они объявлены как final, либо как интерфейсы то ничего страшного наверное нет...А если утилиты ссылаюцца на пакеты бизнес-логики, то много страшного наверное есть :) Чесно говоря, утилитами их назвать язык не поворачиваецца :) там говорилось об зависимости пакетов, и я в самом начале сказал что в любом случае рефакторинг нужен - тоесть по моему мнению от таких зависимостей нужно избавляться. просто если уже есть проект, надо делать это поэтапно: вводить интерфейсы, и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:15:07 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
кстати насчет этой схемы авторЕсть объекты, которые представляют собой сущности бизнес-логики и отображаются на сайте. Эти объекты подчитываются из базы данных. Они находятся в первом пакете. Второй пакет - это Utils, который содержит утилиты, в том числе утилиты работы с url-ами. Второй пакет использует первый, потому что методы из него вычитывают параметры сущности, и исходя из этих параметров строят конечные урлы, которые на сайте ведут к этим сущностям. Первый пакет использует второй, потому что части урлов рассчитываются в первом пакете и хранятся в этом же пакете. Я таким образом кеширую логику формирования урла. лучше в бинах не хранить методы работы с ними а вынести в отдельные обработчики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:22:32 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
еще раз: чтобы грамотно провести рефакторинг - нужно построить модель существующей архитектуры которую вы ходите переделать. модель должна состоять из двух под-моделей: 1) автоматная - которая иллюстрирует состояние вашей системы и условия перехода, а также иллюстрирует структуру вашей системы и топологию. 2) модель поведения и последовательностей - как в динамике ведет ваша система на базе этой модели можно проанализирвоать все зависимости и переделать архитектуру (я так понимаю, сторонники этого подхода - Дейкстра, Кнут и пр...) - тоесть постоянное сопровождение проектирвоания и моделей. Кстати этот подход перекликается с существущей концепцией MDA (Model Driven Architecture) Второй подход - рефакторинг- постепенное изменение кода... Выбирать вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 15:26:59 |
|
||
|
Взаимные зависимости между пакетами. Нормально ли это?
|
|||
|---|---|---|---|
|
#18+
Vetal Второй пакет использует первый, потому что методы из него вычитывают параметры сущности, и исходя из этих параметров строят конечные урлы, которые на сайте ведут к этим сущностям. Первый пакет использует второй, потому что части урлов рассчитываются в первом пакете и хранятся в этом же пакете. Я таким образом кеширую логику формирования урла. Это полный пердимокль. Как можно "кешировать логику"?! У тебя одни и теже объекты (ссылки) высчитываются в двух разных пакетах. Вывод? Убрать создание url из обоих пакетов (строить урл-ы в бизнес логике вообще нарушение мвк). Код: plaintext 1. 2. 3. 4. 5. 6. Ещё лучше превратить url creator в один из классов относящихся к представлению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 17:19:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34022245&tid=2147960]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
35ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 334ms |

| 0 / 0 |
