170 похожих чатов

Подскажите. У меня есть 3 структуры с разичием в 1-2 поля,

каждая структура эмбедит структуру Card:

Структуры:
1. OrdinaryCard
2. ProgressCard
3. OptionsCard

Я хочу реализовать для них общий метод Get, который из базы будет возвращать карту.

Правильно я понимаю, что тут либо возвращать интерфейс, либо для каждой карты реализовывать свой метод Get?

Или есть ещё какие-то варианты?

И такой вопрос. У меня за доставание карты из бд отвечает Repository. Так вот. Получается придётся делать 3 вида репозиториев, для каждого вида карты и реализовывать этот метод Get? Или сделать 1 репозиторий Карт с методами GetOrdinaryCard, GetProgressCard и тд. ?

12 ответов

26 просмотров

Почему либо? Наличие интерфейса не исключает необходимость для каждой структуры делать свой метод get. Если тело метода одинаковое, сделай еще одну базовую структуру и "наследуйся" от нее

wm0- Автор вопроса
Артём Лазаренко
Почему либо? Наличие интерфейса не исключает необх...

Зачем интерфейс, если у репозитория будет 3 метода, каждый из которых может возвращать определённую структуру

wm0- Автор вопроса
Артём Лазаренко
Интерфейс нужен для абстракции

Хорошо. 3 репозитория в каждом по методу или 1 репозиторий и 3 метода? Все будет в 1 коллекции.

wm0- Автор вопроса
Артём Лазаренко
Почему либо? Наличие интерфейса не исключает необх...

Не понял про "наследуйся". Как это поможет сократить дублирование при реализации методов Get?

wm0
Хорошо. 3 репозитория в каждом по методу или 1 реп...

Я б сделал 3 структуры и интерфейс, как писал выше если тело метода одинаковое, сделал бы 4 структуры

Аноним

Я бы сделал один репозиторий карт

Ты всегда можешь сделать базовый репозиторий Card с 3мя методами, каждый из которых содержит свою модель запроса, свой декодер в core модель

wm0- Автор вопроса

Какой интерфейс? С кучей методов GetField?

wm0- Автор вопроса
Владислав
Ты всегда можешь сделать базовый репозиторий Card ...

Как это будет выглядеть на стороне вызывающего, а то не очень понял, как это решает проблему

wm0
Какой интерфейс? С кучей методов GetField?

Я всеми вводными не обладаю 🤷‍♂

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта