using Domain; namespace Presenter { public class ExpressionClick { private readonly Score _score; private readonly IScoreView _view; private readonly IRoseGrow _grow; private readonly IInputCallback _onInputReceived; public ExpressionClick(Score score, IScoreView view, IRoseGrow grow, IInputCallback inputCallback) { _score = score; _view = view; _grow = grow; _onInputReceived = inputCallback; } public void Execute() { _score.Add(); _view.UpdateView(_score.Value); _onInputReceived.OnInputReceived(); if (_score.Value % _score.GrowIterations == 0) _grow.GrowStep(); } } }