Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разделение слоев бизнес-логики и представления, должны ли они быть в разных пакетах? 
:(
    Опции темы
Barvetal
Дата 14.8.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Всем привет!

Должны ли слои бизнес-логики и представления быть в разных пакетах?

Например, пускай есть новостийный сайт с лентой новостей. Есть класс бизнес-логики NewsList, который представляет собой бизнес-логику, и данные берет из persistence-слоя, который располагается в пакете net.mycompany.persistence. Есть также класс, ответственный за вывод ленты новостей на странице: NewsListPage. 

По хорошему стилю проектирования советуют разделять между собой слои представления и бизнес-логики. Означает ли это, что мне нужно поместить классы NewsList и NewsListPage в разные пакеты (например, net.mycompany.newslist.business-logic и net.mycompany.newslist.view). Если да, то как мне следует называть эти разные пакеты (есть ли стандарты именования)?

Всем заранее спасибо!
PM MAIL   Вверх
Stampede
Дата 14.8.2006, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



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

Ну так точно из этих же соображений и презентацию намного удобнее держать в отдельном пакете. Что же касается именования, я бы назвал его net.mycompany.web, но это уже вопрос личных предпочтений.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Barvetal
Дата 14.8.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Цитата(Stampede @ 14.8.2006,  20:36)
Что же касается именования, я бы назвал его net.mycompany.web, но это уже вопрос личных предпочтений.

Спасибо!

Наверное, назову пакет для веб как net.mycompany.newslist.web, а пакет для бизнес-логики как просто net.mycompany.newslist.

Как считаете?
PM MAIL   Вверх
Stampede
Дата 14.8.2006, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(Barvetal @  14.8.2006,  11:41 Найти цитируемый пост)
Как считаете? 


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

Другое дело стандартные (хотя бы де-факто) библиотеки и API: там изменения структуры крайне нежелательны, ибо могут стоить кучи навсегда отвернувшихся юзеров. Поэтому-то разработчики открытых сырцов так долго тянут с выпуском версии 1.0: это очень ответственный момент в жизни софта. Если на стадии альфы к изменениям могут отнестись с пониманием, то с официальным релизом ты фактически сжигаешь за собой мосты. Тут надо семь раз подумать, прежде чем отрезать smile

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1714 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.