Я делаю программу, которая загружает информацию о фильмах из интернета.У меня есть базовый класс Title
, который представляет все названия.Movie
, Serie
и Episode
унаследованы от этого класса.
Для сохранения их в базе данных у меня есть 2 службы, MovieService
и SerieService
.Они, в свою очередь, вызывают репозитории, но это здесь не важно.
У меня есть метод Save(Title title)
, который меня не очень устраивает.Я проверяю, к какому типу относится название, и затем вызываю правильный сервис.Возможно, я хотел бы написать так:
ITitleService service = title.GetService();
title.GetSavedBy(service);
Итак, у меня есть абстрактный метод для Title
, который возвращает ITitleSaver
, который вернет правильный сервис для экземпляра.Чтобы сделать это, службы должны были бы реализовать ITitleSaver
Мой вопрос: как мне реализовать ITitleSaver
?Если я заставлю его принять Title
, мне придется привести его к правильному типу перед вызовом правильной перегрузки.Что приведет к тому, что вам придется снова иметь дело с кастингом.
Каков наилучший подход к решению этой проблемы?Я хотел бы иметь логику сохранения в соответствующем классе.