@BrotherIce

Как лучше вынести логику в общий класс?

Как лучше спрятать логику в какой нить класс общий
<?php
require_once "../vendor/autoload.php";

use src\ExchangeRates;
use src\SalaryReporter;
use src\Validator;

$exchangeRates = new ExchangeRates();
$rateDollar = $exchangeRates->getDollar();
$report = null;
$textValidationError = null;
$numberHours = filter_input(INPUT_POST, "numberHours", FILTER_SANITIZE_STRING);
$rate = filter_input(INPUT_POST, "rate", FILTER_SANITIZE_STRING);
$validator = new Validator();
if (isset($numberHours, $rate)) {
$arrayErrors = $validator->check($numberHours, $rate);
if (empty($arrayErrors)) {
$salaryReporter = new SalaryReporter();
$report = $salaryReporter->generateReport($numberHours, $rate, $rateDollar);
} else {
$validationError = $arrayErrors;
}
}
?>
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
  1. Сначала нужно обдумать что вы с этого будете иметь. Вы сможете переиспользовать эту логику? Вы сможете покрыть логику тестами? Иначе говоря, сформулировать цель такого рефакторинга.
  2. Собственно цель и определит какую логику вы будете выделять. Если задача переиспользовать - значит есть какой-то второй сценарий использования. Смотрите на него, выделяете общие с первым элементы. Выделяете различающиеся элементы - думаете как правильно оформить общие и различные элементы в коде (наследование, композиция, декораторы и т.п. приемы). Собственно на этом этапе у вас появляется план рефакторинга. Если же цель - облегчить тестирование, то начинаете с обдумывания теста. И рассматриваете тест как второй сценарий использования.
  3. Затем остается этот план рефакторинга претворить в жизнь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы