|
|
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
с моделью все ясно - есть классы для каждой таблицы бд с методами доступа - выбрать все записи, выбрать по id, удалить, вставить и т.д. реализованы на базе MyBatis и Spring. с представлением то же - это swing формочки (пока). интересует средний класс - контроллеры - как это должно выглядеть? Т.е. к примеру, у меня есть класс для модели Manager, у него есть методы "вставить запись в таблицу", "удалить запись из таблицы", вернуть все записи, у которых поле Age равно 28" и т.д. Т.е. чисто механические вещи, без какой-либо бизнесс-логики. А теперь мне нужно ТО, где будут методы: "Принять менеджера на работу" (понятно, что это не одно и то же, что "вставить запись в таблицу Managers", но базируется на этом, помимо этого там долны быть и другие методы "Проверить количество ставок", "Рассчитать бюджет" и т.д.), "Уволить менедежера" и т.д. Возможно Это будет класс наследник от класса-модели Managers? Но это как то криво (по крайней мере в чистом виде). Есть ли проверенные фреймворки для таких дел? Опять же изиняюсь за некий сумбур в посте, прошу развеить смуту в голове ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2013, 22:17:13 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Когда такие мысли лезут в голову, пора читать вот эту книгу 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. Тема на столько большая, что одним ответом не охватить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2013, 23:18:33 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2013, 23:28:59 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
И ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер. Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 00:09:23 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪБизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки. Только если БД поддерживает полноценный язык, а не SQL диалект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 00:12:31 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Затрудняюсь назвать СУБД, в которой нет хранимок на обычном языке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 00:16:02 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪИ ещё. 2-tier такая редкость, то даже если бы просили его реализовать, то я бы все равно делал как 3-tier, чтобы при первой возможности код взаимодействия пользователей уносить на сервер. Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки. не можно, а нужно. Тогда DAO - это слой Хранимок вида Код: java 1. Это классика 2-х звенки. На Java ввиду повальной 3-х звенки не применяется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 10:50:34 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Petro123Йуный джавистЪпропущено... Бизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки. не можно, а нужно. Тогда DAO - это слой Хранимок вида Код: java 1. Это классика 2-х звенки. На Java ввиду повальной 3-х звенки не применяется. В каком смысле нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:26:30 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Добрый день, Озверин! > В каком смысле нужно? Petro123 - фанат логики в БД. Не надо с ним дискутировать на эту тему- это его религия. Аргументов типа "мы пробовали так и так" не принимает- типа "плохо пробовали". -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:35:45 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
GKS_Samara, да нет, можно и в бд логику, и 3х звенку..но слово нужно без всякого контекста проблем, которые мы подходом решаем - меня ставит в тупик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:37:25 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Озверин, я не фанат 2-х звенки. Я могу и так и так. Всё логично - преимущества 2-х звенки становятся НЕ очевидны без хранимок. Бизнес логика в 2-х звенке где? Не на клиенте же) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:49:48 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraАргументов типа "мы пробовали так и так" не принимает- типа "плохо пробовали". аргументы типа: "У нас чел писал на Delphi мешанину SELECT в формочках" - тоже не принимается. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:51:44 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Petro123Озверин, я не фанат 2-х звенки. Я могу и так и так. Всё логично - преимущества 2-х звенки становятся НЕ очевидны без хранимок. Бизнес логика в 2-х звенке где? Не на клиенте же) Так я не понял тогда, почему нужно то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 12:54:13 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Озверин, перевожу, и пишу IMHO: 2-х звенка, это уже БЛ в хранимках. Т.е. классический клиент-сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 13:06:25 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Озверин в том посте я ни с кем не спорил. Я указал что 2 варианта: - 2х звенка с ХП - 3-х звенка (Java) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 13:08:23 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪБизнес-логику можно вынести в хранимки, оставаясь в рамках двузвенки.Можно, но не нужно. Камень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 19:17:01 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovКамень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД. А вот это весьма спорное утверждение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 21:46:33 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
авторКамень преткновения: "как мне конкурентно редактировать записи" - вполне тривиально решается на уровне сервера приложений и через анус - на уровне СУБД. С чего бы это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 22:01:32 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
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. Тема на столько большая, что одним ответом не охватить. Спасибо за ценную информацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2013, 22:01:50 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД. В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат. Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2013, 09:14:54 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД. В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат. Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2013, 10:59:13 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЙуный джавистЪС чего бы это?С того, что клиентские блокировки требуют чёткого и отлаженного взаимодействия клиентов и кучи логики, зависящей от СУБД. В трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат. Минус у трёхзвенки, в общем-то, один, но достаточно жирный - требуется реализовать протокол взаимодействия клиентов с сервером приложений. Пардон, промахнулся Как же DB MVCC ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2013, 10:59:49 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Максим Н"Уволить менедежера" и т.д. на Бизнес-метод Объект.УволитьМенеджера(ФИО) тебе нужно будет решить: - проверка что у него перед увольнением нет долгов, будет в СУБД(триггер) или в ОРМ (триггер) или в Сервисном слое (простая процедура). ГУИ и таблички к этому никакого отношения не имеют. ЗЫ. Все способы выше - работают)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2013, 14:00:04 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
авторВ трехзвенке проблема конкурентного редактирования записей вообще не зависит от СУБД - сервер приложения разрулит всё, что надо и сохранит в базе готовый результат. Где вы такие сервера видели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 04:50:00 |
|
||
|
mvc для десктопа
|
|||
|---|---|---|---|
|
#18+
Максим НКак же DB MVCC ?А вы сравните версионность "по Кайту" (Oracle) и по " IBase ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2013, 09:43:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38123996&tid=2130107]: |
0ms |
get settings: |
16ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
48ms |
get topic data: |
19ms |
get forum data: |
5ms |
get page messages: |
97ms |
get tp. blocked users: |
3ms |
| others: | 285ms |
| total: | 510ms |

| 0 / 0 |
