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

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

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

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

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

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

Опять же изиняюсь за некий сумбур в посте, прошу развеить смуту в голове
...
Рейтинг: 0 / 0
mvc для десктопа
    #38123967
Фотография 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
mvc для десктопа
    #38123972
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер.
...
Рейтинг: 0 / 0
mvc для десктопа
    #38123995
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер.

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

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


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

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


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

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

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

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

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

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

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

А вот это весьма спорное утверждение
...
Рейтинг: 0 / 0
mvc для десктопа
    #38125384
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКамень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД.
С чего бы это?
...
Рейтинг: 0 / 0
mvc для десктопа
    #38125386
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
mvc для десктопа
    #38125553
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.
...
Рейтинг: 0 / 0
mvc для десктопа
    #38125583
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.
...
Рейтинг: 0 / 0
mvc для десктопа
    #38125584
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД.
В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат.
Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений.

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

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

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


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