Klasy abstrakcyjne a programowanie funkcyjne
Założenie: Pokażemy, jak klasa abstrakcyjna może być użyta do implementacji strategii w programowaniu funkcyjnym w PHP.
Krok po kroku:
- Definicja klasy abstrakcyjnej: Zdefiniujmy klasę abstrakcyjną
ValidationStrategy
z abstrakcyjną metodąvalidate
. - Implementacja konkretnych strategii: Stwórzmy dwie klasy implementujące
ValidationStrategy
:EmailValidation
iLengthValidation
. - Użycie strategii: Utwórzmy funkcję
validateData
, która przyjmuje strategię walidacji jako argument i używa jej do walidacji danych.
= $minLength;
}
}
?>
validate($data);
}
$email = "test@example.com";
$shortString = "abc";
$longString = "abcdefg";
$emailValidator = new EmailValidation();
$lengthValidator = new LengthValidation();
echo "Email validation: " . (validateData($emailValidator, $email) ? "OK" : "Error") . "\n";
echo "Short string length validation: " . (validateData($lengthValidator, $shortString) ? "OK" : "Error") . "\n";
echo "Long string length validation: " . (validateData($lengthValidator, $longString) ? "OK" : "Error") . "\n";
?>
Ten przykład pokazuje, jak klasa abstrakcyjna może być użyta do implementacji wzorca strategii, co jest kluczowym elementem programowania funkcyjnego. Każda strategia walidacji jest oddzielną klasą, a funkcja validateData
jest niezależna od konkretnej implementacji.
Zachęcamy do dalszego zgłębiania tematu klas abstrakcyjnych i programowania funkcyjnego w PHP!