Угловая - кодовая факторизация и круговые зависимости угловые - PullRequest
0 голосов
/ 31 января 2019

Я строю ионное приложение.У меня есть несколько моделей, таких как машина и пользователь, и для всех них я создал провайдера (взаимодействующего с локальным сервером 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);
  }
}

Это простой пример циклических зависимостей, с которыми я могу встретиться при построении структуры моего приложения.,Есть много функций, связанных с объектами, и поскольку существуют не модели, а провайдеры, как мне сказали, кажется, что они не могут взаимодействовать друг с другом, не создавая тонны циклических зависимостей.Я не очень понимаю, как модели должны работать под углом, и я не вижу удовлетворительного примера в любом уроке.

Есть ли решение?

...