Ho il seguente codice in PHP:
abstract class AlgorithmOnArray {
public function runOn($array) {
$this->setup();
foreach ($array as $item) {
$this->processItem();
}
$this->cleanup();
}
public abstract function processItem();
public function cleanup() { }
public function setup() { }
}
La mia domanda riguarda questa nozione che ho qui di avere metodi vuoti ma implementati per cleanup
e setup
. L'idea qui è che mentre normalmente li avrei come astratti, voglio anche classi che estendono la classe AlgorithmOnArray
per poter eseguire il fallback su un'implementazione predefinita.
La domanda qui è se questa sia considerata una cosa ragionevole da fare o dovrei dire rigorosamente che questi metodi devono anche essere astratti per forzare gli algoritmi figli ad implementarli?