|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Добрый день, В систему будут поступать объекты "Документ", нужно проводить валидацию документов, согласно списку проверок из БД. Проверки в БД могу быть включены (true) или отключены (false). Т.е. если сегодня включены проверки 1, 2, 3, и 5, то на завтра, пользователь может изменить количество и номера проверок на 1, 3, 4. Какой паттерн проектирования здесь можно применить? Что бы не писать конструкцию: Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:20 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Почему у многих такая маниакальная не любовь к if, case, for?)) В каком виде проверка лежит в бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:34 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Aleks_Aleks, Почему у многих такая маниакальная не любовь к if, case, for?)) Мы не индусы, что бы нам платили за количество строк кода)) PetroNotC Sharp Aleks_Aleks, В каком виде проверка лежит в бд? Скорее всего, буду из БД получать список "SELECT check FROM checks WHERE status = true;" конвертить его в List<Check> а дальше как-то проверять, что если в списке есть проверка 1 то выполнить проверку "№ документа", если есть проверка 2 то проверить "Дату документа" и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:47 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Я думаю использовать паттерн Command, код уже реализован на паттерне Chain of Responsibility просто классы, положить в БД, получить список классов, на всех классах вызвать метод execute годный контент? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:01 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Будет меньше кода если все условия выстроим в цепочку? strim2 = streamMy.filter(check==true) 2. Я спросил какой вид в бд имеет проверка "Дата документа"? Что лежит в текстовом поле? Sql.? Dll? Скрипт? Jar? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:04 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks Я думаю использовать паттерн Command, код уже реализован на паттерне Chain of Responsibility просто классы, положить в БД, получить список классов, на всех классах вызвать метод execute годный контент? То есть есть много исполнителей а не проверок. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:06 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Почему нет паттерн ORM? Если бы он был, то ни одного слова о бд не было бы в топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:08 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Aleks_Aleks, 2. Я спросил какой вид в бд имеет проверка "Дата документа"? Что лежит в текстовом поле? Sql.? Dll? Скрипт? Jar? Пока точно не известно, данная таблица еще не реализована, скорее всего там будет храниться код проверки "CHECK_01_02_02" но можно положить и имя класса или еще что нить... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:08 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Ну и на всякий теория. Валидация проходе в слое бизнес логике БЛ. Она пишется заранее и юзверь не ставит галочки что проверять. В общем случае... Абстрактно говоря. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:10 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks PetroNotC Sharp Aleks_Aleks, 2. Я спросил какой вид в бд имеет проверка "Дата документа"? Что лежит в текстовом поле? Sql.? Dll? Скрипт? Jar? Пока точно не известно, данная таблица еще не реализована, скорее всего там будет храниться код проверки "CHECK_01_02_02" но можно положить и имя класса или еще что нить... В БД будет храниться только код и название проверки и еще статус вкл/выкл, сама реализация проверки будет в Java Class ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:11 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, А условия OR AND, скобки, меньше больше где? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:14 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
т.е. общий смысл такой, есть Код: java 1. 2. 3. 4. 5. 6.
есть проверки Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:17 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, If doc.подписан == гендир ИЛИ врио выделитКредит() Как тут галочками? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:18 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks т.е. общий смысл такой, есть Код: java 1. 2. 3. 4. 5. 6.
есть проверки Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:21 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Извини, пока что ООП головного мозга. Тебе на галеры надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:23 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Если этих чекеров ощутимо больше 5, я бы добавил в таблице уникальное поле "имя чекера", а в коде по полю создавал соответствующую имени реализацию. Т.е. грузим только те, что активны, создаем реализации и возвращаем прикладному коду. Самый интересный вопрос - как именно и где создавать и описывать реализации, тут возможны варианты. Самое примитивное - мапа имя-класс, более продвинутое - как-то через DI, если используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:28 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
chpasha, Имя Класса. Потом фабрикой создавать полиморфные объект. И он инспектирует или валидирует. Тут много паттернов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:33 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Лучше сразу DSL )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:34 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, Предметно-ориентированный язык (англ. domain-specific language, DSL — «язык, специфический для предметной области») — компьютерный язык, специализированный для конкретной области применения (в противоположность языку общего назначения, применимому к широкому спектру областей и не учитывающему особенности конкретных сфер знаний). Построение такого языка и/или его структура данных отражают специфи ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:36 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Имя Класса имя класса менее гибко, а так это "имя бина", за которым реализация может меняться ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:37 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
Aleks_Aleks, If name == "CheckDate" obj = new CheckDate() else ... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:38 |
|
Какой паттерн?
|
|||
---|---|---|---|
#18+
chpasha, Бин это класс в общем случае. Я о паттерне полиморфизм в ООП. Его препод раньше спросит. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:42 |
|
|
start [/forum/topic.php?fid=59&msg=40050945&tid=2120500]: |
0ms |
get settings: |
24ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
511ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 625ms |
0 / 0 |