|
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 50
|
||||||||||||||||||||||||||
Дженерикс18.03.2020, 19:26. Показов 669. Ответов 4
Метки нет (Все метки)
На данный момент реализовано так, есть сущность ProjectEntity (справочник проектов) и его методы реализованы в DirectoryController, всё прекрасно работало пока мне не пришлось добавлять в функционал еще один справочник задач (TaskEntity). Я конечно могу так же добавлять методы для нового справочника и всё будет работать, но у двух справочник одни и те же CRUD операции, и получится дублирование кода, что не есть хорошо. Подскажите как реализовать методы 2х сущностей в одном контроллере, имею представление о том что нужно все абстрагировать, но реализация не понятна. Всем заранее спасибо, и здоровья
0
|
||||||||||||||||||||||||||
|
25 / 21 / 6
Регистрация: 10.12.2018
Сообщений: 115
|
|
| 19.03.2020, 07:11 | |
|
я бы сказал что не по феншую использовать один и тот же репозиторий для разных типов данных. т.е. репозитории должны быть разными чтоб каши не было. другое дело что ты можешь обращаться не к репозиторию на прямую из контроллера а добавить прослойку сервисов. но опять же чтобы дергать разные справочники лучше использовать разные api. подведу итог: да, рефакторинг это хорошо, но надо не забывать что у нас при этом не должно получаться каши. т.е. для разных справочников луче использовать отдельные api и отдельные репозитории
Добавлено через 2 минуты лучше напиши лишний класс но чтобы код было легче читать и проще масштабировать чем ты свалишь всё в одну кучу и через месяц уже сам не сможешь понять для каких целей ты так написал Добавлено через 5 минут а про реализацию: использовать не репозиторий а сервис типо диспатчера... можно сделать класс сингл тон, туда добавить свои круд репозитории, и хешкарту которая содержит HashMap<string, Function<CrudRepository, E>> проинициализировать мапу и дергать по ключу нужные метод с нужным репозиторием...
1
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 19.03.2020, 10:47 | |
|
Кенес, у тебя две одинаковые таблицы. Зачем? Сделай одну таблицу и заведи там поле type (PROJECT/TASK) и проблем не будет
1
|
|
|
0 / 0 / 0
Регистрация: 20.09.2013
Сообщений: 50
|
||
| 19.03.2020, 12:07 [ТС] | ||
|
Я думал над этим, но это хорошо если у меня будет 2 справочника, а если функционал таймшита увеличится и будет уже 5-10 справочников тогда уже поддерживать будет тяжелее. Конечно тема Дженериков не легкая, но уж лучше сразу через это пройти. Вопрос не в том что бы сделать что бы было, а в том что бы сделать правильно и красиво. Спасибо за ответ.
Добавлено через 4 минуты
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||
| 19.03.2020, 12:41 | |||
|
1
|
|||
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|