我正在创建一个API,它将提供有关电影的信息。我想从两个来源获取有关电影的信息:
我将在属性文件中具有标志,例如fetch_from_remote = true / false;
我的问题是如何构建我的项目。我想到了类似下面的代码。我将把MovieRepo的两个实现之一(LocalRepo或RemoteRepo)注入到Flag中指定的MovieService中。但是我不确定它是否会起作用以及是否很好。您有什么建议/更好的主意吗?
MovieController.class
public class MovieController{
MovieService MovieService;
Movie getMovie(int id){
MovieService.getMovie(id);
}
}
MovieRepository.class
public interface MovieRepository{
Movie getMovie(int id);
}
RemoteRepo.class
public class RemoteRepo implements MovieRepoisotry (
public getMovie(int id){
// implemenatation to connect to remotApi and fetchData
}
)
LocalRepo.class
public interface LocalRepo extends MovieRepository,JpaRepository<ChatMessage, Integer>{
}
MovieService.class
public class MovieService{
MovieRepository MovieRepository;
public getMovie(int id){
MovieRepository.getMovie(id);
}
}