コード例 #1
0
        /// <summary>
        /// Сохранить состояние космического корабля.
        /// </summary>
        /// <returns> Состояние корабля. </returns>
        public MementoSpaceship Save()
        {
            // Формируем снимок для сохранения состояние.
            var memento = new MementoSpaceship(Name, Health);

            return(memento);
        }
コード例 #2
0
        /// <summary>
        /// Сохранить снимок в хранилище.
        /// </summary>
        /// <param name="memento"> Снимок состояние космического корабля. </param>
        public void Save(MementoSpaceship memento)
        {
            // Проверяем входные данные на корректность.
            if (memento == null)
            {
                throw new ArgumentNullException(nameof(memento));
            }

            // Добавляем состояние в коллекцию.
            _mementos.Add(memento);
        }
コード例 #3
0
        /// <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;
        }