Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / mvc для десктопа / 25 сообщений из 27, страница 1 из 2
24.01.2013, 22:17:13
    #38123919
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
с моделью все ясно - есть классы для каждой таблицы бд с методами доступа - выбрать все записи, выбрать по id, удалить, вставить и т.д. реализованы на базе MyBatis и Spring.
с представлением то же - это swing формочки (пока).

интересует средний класс - контроллеры - как это должно выглядеть?

Т.е. к примеру, у меня есть класс для модели Manager, у него есть методы "вставить запись в таблицу", "удалить запись из таблицы", вернуть все записи, у которых поле Age равно 28" и т.д. Т.е. чисто механические вещи, без какой-либо бизнесс-логики.

А теперь мне нужно ТО, где будут методы: "Принять менеджера на работу" (понятно, что это не одно и то же, что "вставить запись в таблицу Managers", но базируется на этом, помимо этого там долны быть и другие методы "Проверить количество ставок", "Рассчитать бюджет" и т.д.), "Уволить менедежера" и т.д.

Возможно Это будет класс наследник от класса-модели Managers? Но это как то криво (по крайней мере в чистом виде).

Есть ли проверенные фреймворки для таких дел?

Опять же изиняюсь за некий сумбур в посте, прошу развеить смуту в голове
...
Рейтинг: 0 / 0
24.01.2013, 23:18:33
    #38123967
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Когда такие мысли лезут в голову, пора читать вот эту книгу
http://martinfowler.com/books/eaa.html
Перевод на русский, вроде, не плох.

Теперь по порядку. MVC удобный паттерн для Web. А вот на десктопе гораздо интереснее MVP и его вариации.
http://rsdn.ru/article/patterns/ModelViewPresenter.xml
Гуглите Model view presenter in swing для примеров.

Доступ к базе данных нужно выносить в отдельный слой в любом случае. Обычно в DAO. Смысла использовать Active Record, я не вижу.

Domain Model - тоже большой отдельный воспрос. Вы правильно рассуждаете что бизнес-транзакции стоит реализовывать отдельными классами, а не сущностями. Читайте про Transaction Script.

Тема на столько большая, что одним ответом не охватить.
...
Рейтинг: 0 / 0
24.01.2013, 23:28:59
    #38123972
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер.
...
Рейтинг: 0 / 0
25.01.2013, 00:09:23
    #38123995
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер.

Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.
...
Рейтинг: 0 / 0
25.01.2013, 00:12:31
    #38123996
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Йуный джавистЪБизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.
Только если БД поддерживает полноценный язык, а не SQL диалект.
...
Рейтинг: 0 / 0
25.01.2013, 00:16:02
    #38123997
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Затрудняюсь назвать СУБД, в которой нет хранимок на обычном языке.
...
Рейтинг: 0 / 0
25.01.2013, 10:50:34
    #38124260
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Йуный джавистЪИ ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер.

Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.
не можно, а нужно.
Тогда DAO - это слой Хранимок вида
Код: java
1.
Пакет.Раасчитать бюджет.


Это классика 2-х звенки.
На Java ввиду повальной 3-х звенки не применяется.
...
Рейтинг: 0 / 0
25.01.2013, 12:26:30
    #38124425
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Petro123Йуный джавистЪпропущено...

Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.
не можно, а нужно.
Тогда DAO - это слой Хранимок вида
Код: java
1.
Пакет.Раасчитать бюджет.


Это классика 2-х звенки.
На Java ввиду повальной 3-х звенки не применяется.

В каком смысле нужно?
...
Рейтинг: 0 / 0
25.01.2013, 12:35:45
    #38124448
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Добрый день, Озверин!

> В каком смысле нужно?

Petro123 - фанат логики в БД.
Не надо с ним дискутировать на эту тему- это его религия.
Аргументов типа "мы пробовали так и так" не принимает-
типа "плохо пробовали".

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.01.2013, 12:37:25
    #38124452
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
GKS_Samara,

да нет, можно и в бд логику, и 3х звенку..но слово нужно без всякого контекста проблем, которые мы подходом решаем - меня ставит в тупик.
...
Рейтинг: 0 / 0
25.01.2013, 12:49:48
    #38124476
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Озверин,
я не фанат 2-х звенки. Я могу и так и так.
Всё логично - преимущества 2-х звенки становятся НЕ очевидны без хранимок.
Бизнес логика в 2-х звенке где? Не на клиенте же)
...
Рейтинг: 0 / 0
25.01.2013, 12:51:44
    #38124479
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
GKS_SamaraАргументов типа "мы пробовали так и так" не принимает-
типа "плохо пробовали".
аргументы типа:
"У нас чел писал на Delphi мешанину SELECT в формочках" - тоже не принимается.
Удачи.
...
Рейтинг: 0 / 0
25.01.2013, 12:54:13
    #38124487
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Petro123Озверин,
я не фанат 2-х звенки. Я могу и так и так.
Всё логично - преимущества 2-х звенки становятся НЕ очевидны без хранимок.
Бизнес логика в 2-х звенке где? Не на клиенте же)

Так я не понял тогда, почему нужно то?
...
Рейтинг: 0 / 0
25.01.2013, 13:06:25
    #38124520
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Озверин,
перевожу, и пишу IMHO:
2-х звенка, это уже БЛ в хранимках. Т.е. классический клиент-сервер.
...
Рейтинг: 0 / 0
25.01.2013, 13:08:23
    #38124530
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Озверин
в том посте я ни с кем не спорил.
Я указал что 2 варианта:
- 2х звенка с ХП
- 3-х звенка (Java)
...
Рейтинг: 0 / 0
25.01.2013, 19:17:01
    #38125253
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Йуный джавистЪБизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.Можно, но не нужно.
Камень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД.
...
Рейтинг: 0 / 0
25.01.2013, 21:46:33
    #38125375
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Basil A. SidorovКамень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД.

А вот это весьма спорное утверждение
...
Рейтинг: 0 / 0
25.01.2013, 22:01:32
    #38125384
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
авторКамень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД.
С чего бы это?
...
Рейтинг: 0 / 0
25.01.2013, 22:01:50
    #38125386
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
BlazkowiczКогда такие мысли лезут в голову, пора читать вот эту книгу
http://martinfowler.com/books/eaa.html
Перевод на русский, вроде, не плох.

Теперь по порядку. MVC удобный паттерн для Web. А вот на десктопе гораздо интереснее MVP и его вариации.
http://rsdn.ru/article/patterns/ModelViewPresenter.xml
Гуглите Model view presenter in swing для примеров.

Доступ к базе данных нужно выносить в отдельный слой в любом случае. Обычно в DAO. Смысла использовать Active Record, я не вижу.

Domain Model - тоже большой отдельный воспрос. Вы правильно рассуждаете что бизнес-транзакции стоит реализовывать отдельными классами, а не сущностями. Читайте про Transaction Script.

Тема на столько большая, что одним ответом не охватить.
Спасибо за ценную информацию
...
Рейтинг: 0 / 0
26.01.2013, 09:14:54
    #38125553
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Йуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.
...
Рейтинг: 0 / 0
26.01.2013, 10:59:13
    #38125583
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.
...
Рейтинг: 0 / 0
26.01.2013, 10:59:49
    #38125584
Максим Н
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.

Пардон, промахнулся

Как же DB MVCC ?
...
Рейтинг: 0 / 0
26.01.2013, 14:00:04
    #38125682
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Максим Н"Уволить менедежера" и т.д.
на Бизнес-метод
Объект.УволитьМенеджера(ФИО)
тебе нужно будет решить:
- проверка что у него перед увольнением нет долгов, будет в СУБД(триггер) или в ОРМ (триггер) или в Сервисном слое (простая процедура).

ГУИ и таблички к этому никакого отношения не имеют.
ЗЫ.
Все способы выше - работают))
...
Рейтинг: 0 / 0
27.01.2013, 04:50:00
    #38126075
Йуный джавистЪ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
авторВ трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Где вы такие сервера видели?
...
Рейтинг: 0 / 0
27.01.2013, 09:43:47
    #38126088
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
mvc для десктопа
Максим НКак же DB MVCC ?А вы сравните версионность "по Кайту" (Oracle) и по " IBase ".
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / mvc для десктопа / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]