|
|
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Начитался про GRASP и GoF шаблоны, ну и решил начать применять, ну и начал с грасповского Information Expert :) Есть у меня некий объект, сущность, которая мапится в базу. Естественно описаны поля, геттеры, сеттеры, икьюалс, туСтринг и т.д. Возникла необходимость создать метод, который бы проверял несколько полей на их значения, то есть они не должны быть пустыми или иметь null. Метод самый простой, хотя тут тоже надо бы подумать о его универсальности в части оперативного добавления или удаления полей проверки, пока писать его не стал, временно пустой, чтоб не забыть. Возвращает false, если одно из полей не заполнено, и true, если все поля заполнены. Дак вот вопрос, куда его логичнее всего включить, положить? 1. В класс с интерфейсом пользователя, в листенер кнопки, которая вызывает этот и другие методы? 2. В класс, в котором у меня идет работа с БД, то есть там где методы с sql запросами и возвратами коллекций из БД ? 3. В класс самой сущности? мне кажется этот (3-й) вопрос бредовым, но задал его потому, что вообще в целом что-то стоит в классы сущностей еще добавлять какие-нибудь методы? не говоря, конечно, о методах типа toString() 4. Еще куда-то... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 21:29 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Метод, который оперирует полями и свойствами одного класса должен находится в этом самом классе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 10:58 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМетод, который оперирует полями и свойствами одного класса должен находится в этом самом классе. А если уйти от этого паттерна, и к реальной ситуации приблизиться, то в Entity классы вообще практикуется что-то включать, кроме тех методов, которые любая IDE, генерирует? У меня просто ощущение, что там не должно быть ничего лишнего... может сущность должна быть "чистой"... Или я не верно думаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 07:28 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
NixicBlazkowiczМетод, который оперирует полями и свойствами одного класса должен находится в этом самом классе. А если уйти от этого паттерна, и к реальной ситуации приблизиться, то в Entity классы вообще практикуется что-то включать, кроме тех методов, которые любая IDE, генерирует? У меня просто ощущение, что там не должно быть ничего лишнего... может сущность должна быть "чистой"... Или я не верно думаю? ой да оставьте эти паттерны, делайте как вам удобней, все равно рефакторить не один раз придется. да и само образование патерна - patter - толкать фуфло, нести пургу)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 10:29 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Nixic, Оба подхода применяются. Владейте обоими. И глупая сущность с умными сервисами по её управлению И умная сущность/толстая с глупыми но простыми сервисами. Вообще, этот вопрос сложнейший. Был бы простой, программистов бы заменили автоматы. Еще простые сущности применяют именно в вебе т.к. потоки. Imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 13:50 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
NixicНачитался про GRASP и GoF шаблоны, ну и решил начать применять, ну и начал с грасповского Information Expert :) Есть у меня некий объект, сущность, которая мапится в базу. Естественно описаны поля, геттеры, сеттеры, икьюалс, туСтринг и т.д. Возникла необходимость создать метод, который бы проверял несколько полей на их значения, то есть они не должны быть пустыми или иметь null. Метод самый простой, хотя тут тоже надо бы подумать о его универсальности в части оперативного добавления или удаления полей проверки, пока писать его не стал, временно пустой, чтоб не забыть. Возвращает false, если одно из полей не заполнено, и true, если все поля заполнены. Дак вот вопрос, куда его логичнее всего включить, положить? 1. В класс с интерфейсом пользователя, в листенер кнопки, которая вызывает этот и другие методы? 2. В класс, в котором у меня идет работа с БД, то есть там где методы с sql запросами и возвратами коллекций из БД ? 3. В класс самой сущности? мне кажется этот (3-й) вопрос бредовым, но задал его потому, что вообще в целом что-то стоит в классы сущностей еще добавлять какие-нибудь методы? не говоря, конечно, о методах типа toString() 4. Еще куда-то... ? Есть Entity, есть Repository - который заполняет-из/маппит-в бд сущности и есть контроллер, который оперирует репозиторием. Я думаю, удобно было бы положить проверку на заполнение в репозиторий, как общий объект для многих контроллеров - это просто удобно, чтобы не плодить одну и ту же логику проверок в контроллерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 13:58 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Герой днячтобы не плодить одну и ту же логику проверок в контроллерах а какая там общая логика. В контроллёре А проверка if FIELD_25 равен пусто then raise В контроллёре Б проверка if FIELD_44 равен пусто then raise ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 19:00 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
в метод соответствующего микросервиса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 19:37 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczМетод, который оперирует полями и свойствами одного класса должен находится в этом самом классе. не обязательно. доменная модель может быть "чистой" - только данные и связи. а вся бизнес-логика - в микросервисах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 19:39 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Petro123Герой днячтобы не плодить одну и ту же логику проверок в контроллерах а какая там общая логика. В контроллёре А проверка if FIELD_25 равен пусто then raise В контроллёре Б проверка if FIELD_44 равен пусто then raise если не общая валидация - тогда в контроллер ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 23:49 |
|
||
|
Куда положить метод проверки заполненности полей объекта/сущности?
|
|||
|---|---|---|---|
|
#18+
Герой дняесли не общая валидация - тогда в контроллер ) а если валидация "мгновенная", тогда на клиента в JS. Тут у ТС абсолютно академический вопрос про сферических коней в вакууме. И ответа одного правильного не может быть. Вообще, вопрос мелочный - валидация). Начнет писать разберётся. Фреймворк подскажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 00:58 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=89&tid=2123748]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 328ms |

| 0 / 0 |
