@Oxoron
Шарпер

Как лучше преобразовать фабричный метод?

Добрый день.
Есть программа на .NET, реализует пошаговую многопользовательскую игру. В ней класс Game, с событиями GameStateChanged, GameEnded.
Игра создается так:
CurrentGame = GameFactory.CreateGame(_gameMeta, activePlayer, true); 
CurrentGame.GameEnded += OnCurrentGameEnded;
CurrentGame.GameStateChanged += OnCurrentGameStateChaged;

_gameMeta - число игроков, тип (человек\бот); activePlayer - индекс ходящего игрока; true - создать ботов.

При игре хотя бы с одним человеком - все хорошо. При игре только ботов - бессмысленно подписываться на события CurrentGame. При создании игры она моментально стартует, и коннект на событие происходит уже после её (игры) окончания. Как лучше поступить - выкинуть из фабричного метода запуск игры, или передавать ему в качестве аргументов (необязательных) делегаты, которые тот будет крепить к событиям?
  • Вопрос задан
  • 2361 просмотр
Решения вопроса 1
@mayorovp
Правильный способ - выкинуть обязательный запуск игры. Например, добавив именованный параметр со значением по умолчанию.

Передача делегатов в фабричный метод - это уже крайний случай, если дошло до такого - пора менять архитектуру кода, уходя от событий.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы