Я строю ионное приложение.У меня есть несколько моделей, таких как машина и пользователь, и для всех них я создал провайдера (взаимодействующего с локальным сервером sqlite dtb и третьим сервером приложений).Моя проблема в том, что этим поставщикам нужны функции, которые есть у других поставщиков, и это может создавать циклические зависимости.Например:
carService.ts
@Injectable({providedIn: 'root'})
export class CarService{
constructor(private server: ServerProvider, private dtb: DtbProvider, private userService: UserService) { }
deleteCar(car: CarModel){
dtb.executeSql(...)
.then(data => {
this.userService.deleteUser(car.user);
})
}
sendCarToServer(){
//--- Code sending car to server with server provider
}
}
userService.ts
@Injectable({providedIn: 'root'})
export class UserService{
constructor(private server: ServerProvider, private dtb: DtbProvider, private carService: CarService) { }
deleteUser(user: UserModel){
//--- Code deleting user with dtb provider
}
freeCar(user: UserModel){
this.deleteUser(user);
sendCarToServer(user.car);
}
}
Это простой пример циклических зависимостей, с которыми я могу встретиться при построении структуры моего приложения.,Есть много функций, связанных с объектами, и поскольку существуют не модели, а провайдеры, как мне сказали, кажется, что они не могут взаимодействовать друг с другом, не создавая тонны циклических зависимостей.Я не очень понимаю, как модели должны работать под углом, и я не вижу удовлетворительного примера в любом уроке.
Есть ли решение?