UseCase должна быть всего одна функция или несколько функций, но одной логики?
Например у меня есть одна родительская таблица с двумя дочерними таблицами в массивах.
data class School(
val id: Int,
val students: List<Student>,
val subjects: List<Subject>
)
и я например для получения дата класса School, сделал GetSchoolUseCase()
а если я хочу найти студентов, то мне нужно создавать новый UseCase? Так же и для предметов?
UseCase это термин из области бизнес-требований, дословно пользовательский сценарий. В коде класс, который реализует этот сценарий, может называться Interactor, или так же UseCase. Ограничений на количество методов в нём нет, просто кто-то предпочитает более функциональный стиль, когда у UseCase есть один метод execute, но это совсем не обязательно.
То есть по сути дело вкуса называть юз кейс или интерактор? А наполнение произвольное?
Главное в рамках проекта какие-то правила установить, и понимать, за что конкретно отвечает каждый тип сущности. Золотых стандартов нет, но есть несколько популярных подходов)
ок, понятно, спасибо за ответ ) мы как то просто поднимали эту тему в андроид девелоперс, и почему то сошлись на том что интерактор имеет более расширенное понимание чем useCase, useCase даже из названия как бы предполагает что это вроде как одна логика, одна функция
Это интерпретации, которые имеют право на существование, просто надо понимать, что есть и другие альтернативы, и ни одну нельзя назвать правильной, только выбрать наиболее подходящюю вашему проекту
и на самом деле жаль , стандартизация в этом смысле была бы не лишней
К сожалению, это сложно, и конкретные шаблоны где всё расписано вплоть до классов, плохо масштабируются для проектов разной сложности
Эта мысль, мне кажется, тут вообще самое важное, что можно вынести из разговора. Спасибо большое
Обсуждают сегодня