/// <summary> /// Initializes a new instance of the <see cref="SpiderMovementStrategy"/> class. /// </summary> /// <param name="robotState"> The robot state Finite State Machine. </param> /// <param name="updateLocationStrategy"> The strategy used to update the location. </param> /// <param name="instructionParser"> The instance of <see cref="instructionParser"/> that cn convert the char based instruction set. </param> public SpiderMovementStrategy(IFiniteStateMachine robotState, IUpdateLocationStrategy updateLocationStrategy, IInstructionParser instructionParser) { this._robotState = robotState ?? throw new ArgumentNullException(nameof(robotState)); this._updateLocationStrategy = updateLocationStrategy ?? throw new ArgumentNullException(nameof(updateLocationStrategy)); this._instructionParser = instructionParser ?? throw new ArgumentNullException(nameof(instructionParser)); }
/// <summary> /// Initializes a new instance of the <see cref="MovementStrategyFactory"/> class. /// </summary> /// <param name="locationStrategy"> The location strategy. </param> /// <param name="instructionParser"> The instructionParser. </param> public MovementStrategyFactory(IUpdateLocationStrategy locationStrategy, IInstructionParser instructionParser) { this._locationStrategy = locationStrategy ?? throw new ArgumentNullException(nameof(locationStrategy)); this._instructionParser = instructionParser ?? throw new ArgumentNullException(nameof(instructionParser)); }