/// <summary> /// Сохранить состояние космического корабля. /// </summary> /// <returns> Состояние корабля. </returns> public MementoSpaceship Save() { // Формируем снимок для сохранения состояние. var memento = new MementoSpaceship(Name, Health); return(memento); }
/// <summary> /// Сохранить снимок в хранилище. /// </summary> /// <param name="memento"> Снимок состояние космического корабля. </param> public void Save(MementoSpaceship memento) { // Проверяем входные данные на корректность. if (memento == null) { throw new ArgumentNullException(nameof(memento)); } // Добавляем состояние в коллекцию. _mementos.Add(memento); }
/// <summary> /// Восстановить состояние космического корабля из снимка. /// </summary> /// <param name="memento"> Снимок состояния космического корабля. </param> public void Restore(MementoSpaceship memento) { // Проверяем входные данные на корректность. if (memento == null) { throw new ArgumentNullException(nameof(memento)); } if (string.IsNullOrEmpty(memento.SpaceshipName)) { throw new ArgumentNullException(nameof(memento.SpaceshipName)); } if (memento.Health <= 0) { throw new ArgumentException("Здоровье космического корабля не может быть меньше либо равно нулю.", nameof(memento.Health)); } // Восстанавливаем состояние из снимка. Name = memento.SpaceshipName; Health = memento.Health; }