Как можно сделать откат и повтор OOP? echo $calculate->init(20).
->compute('+', 2)
->replay();
->undo();
->getResult();
каким образом можно реализовать откат и повтор метода в OOP?

4 Фев 2021 в 19:45
110 +1
0
Ответы
1

Для реализации отката и повтора методов в ООП можно создать класс Calculator с методами init, compute, replay, undo и getResult. Ниже приведен пример реализации класса Calculator:

class Calculator {
private $result;
private $history;
public function init($value) {
$this->result = $value;
$this->history = [$value];
return $this;
}
public function compute($operator, $value) {
switch ($operator) {
case '+':
$this->result += $value;
break;
case '-':
$this->result -= $value;
break;
case '*':
$this->result *= $value;
break;
case '/':
$this->result /= $value;
break;
default:
break;
}
$this->history[] = $this->result;
return $this;
}
public function replay() {
$this->result = end($this->history);
return $this;
}
public function undo() {
array_pop($this->history);
$this->result = end($this->history);
return $this;
}
public function getResult() {
return $this->result;
}
}
$calculate = new Calculator();
echo $calculate->init(20)->compute('+', 2)->replay()->undo()->getResult();

В данном примере класс Calculator содержит методы для инициализации значения, выполнения операций, отката, повтора и получения результата. При вызове методов init и compute результат операции история вычислений сохраняется в массиве history. Метод replay возвращает результат последней операции, а метод undo отменяет последнюю операцию. Метод getResult возвращает текущее значение результата.

17 Апр в 21:02
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 905 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир