Die Implementierung austauschen

Wir verschieben die Berechnung $a + $b in die Methode add(). Die Datei calculate.php brauchen wir dann nicht mehr und können sie löschen, weil sie von niemandem sonst mehr benutzt wird.

<?php declare(strict_types=1);

namespace spriebsch\tfd\softwareModernisation\branchByAbstraction\encapsulateLegacyPages\exchangeImplementation;

$a = 1;
$b = 2;

Library::add($a, $b);

class Library
{
    public static function add(int $a, int $b): int
    {
        return $a + $b;
    }
}
example.php

Geschafft! Wir haben dank Branch by Abstraction unser Beispiel deutlich modernisiert und konnten dabei in sehr kleinen und überschaubaren Schritten vorgehen.

Wir könnten für die Methode add() nun noch auf static verzichten, das würde aber in unserer Legacy-Anwendung den Aufruf vermutlich schwieriger machen. Trotzdem lohnt es sich, anstelle einer globalen Funktion eine Klasse mit einer statischen Methode anzulegen, da wir diese autoloaden können.