Есть сущности: планета и игрок. Эти сущности должны знать друг о друге все публичное. Передавать сущности друг в друга аргументами никак.
1. Сущности могут создаваться в любом порядке, то есть при появлении игрока планеты для него еще может и не быть и наоборот планета может появиться раньше игрока.
2. Сущность планеты используется в геттерах игрока, а игрок используется в геттерах планеты (в TS в геттеры нельзя передать параметры)
Ну и отношение игрока к планетам один к множеству
export class Player {
private readonly _planets: Array<Planet>;
constructor(private readonly _id: string) {}
public get id(): string {
return this._id;
}
public get planets(): Array<number> {
return this._planets.map((planet) => planet.position);
}
}
export class Planet {
private readonly _player: Player;
constructor(private readonly _position: number) {}
public get position(): number {
return this._position;
}
public get owner(): string {
return this._player.id;
}
}
У кого какие идеи?