Зависимость конструктора класса с несколькими экземплярами одного класса - PullRequest
0 голосов
/ 02 мая 2020

Я не уверен, разумно ли передавать сам класс в конструкторе, например:

class OngoingActions {
  constructor(Activation) {
    this._actions = {
      onTurnStart: [new Activation(), new Activation()],
      onTurnEnd: [new Activation(), new Activation()],
      onDraw: [new Activation(), new Activation()],
      onMove: new Activation()
    };
  }
}

Я понимаю, что для внедрения зависимостей вам нужно передать экземпляр класса. Было бы немного неудобно передавать в конструктор 7 или более экземпляров одного и того же класса. Я мог бы также импортировать весь объект «_actions», но приятно видеть структуру объекта в том же классе. Как лучше всего с этим справиться?

Ответы [ 2 ]

2 голосов
/ 02 мая 2020

Если вы ищете factory pattern, это означает, что фабричный класс должен знать object class. И generate function не должно быть функцией экземпляра, а должно быть static. Так что только один source for truth.

class Activation {
  constructor(event) {
    this.event = event;
  }
}
class OnGoingActionFactory {}
OnGoingActionFactory.getActions = () => {
  return {
    onTurnStart: [new Activation("start"), new Activation("start2")],
    onTurnEnd: [new Activation("end"), new Activation("end")],
    onDraw: [new Activation(), new Activation()],
    onMove: new Activation(),
  };
};

console.log(OnGoingActionFactory.getActions())
1 голос
/ 02 мая 2020

Почему вы хотите использовать внедрение зависимостей для Activation класса?

Планируете ли вы проверить, инициализируется ли this._actions с использованием только экземпляров этого класса? Сохраняет ли класс Activation какое-то внутреннее состояние, которое зависит от количества созданных экземпляров?

По мне, похоже на фабричный шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...