Je vous écris actuellement un analyseur de fichier texte pour plusieurs formats. Pendant que le fichier texte est analysé, il existe différents types d'opérations à effectuer. J'essaie de faire quelque chose de propre en utilisant OOP. Voici où je suis coincé:Parser pour plusieurs formats et plusieurs opérations (motif de conception disponible?)
abstract class Parser
{
abstract protected function DoSomeStuff($data);
public function Parse($src)
{
if ($this->GetFormat($src) == 1)
{
$data =$this->GetSomeDataFromFormat1($src);
DoSomeStuff($data);
}
if ($this->GetFormat($src) == 2)
{
$data = $this->GetSomeDataFromFormat2($src);
DoSomeStuff($data);
}
}
}
class DoSomething extends Parser
{
protected function DoSomeStuff($data)
{
// Doing some stuff with data
}
}
class DoSomethingElse extends Parser
{
protected function DoSomeStuff($data)
{
// Doing some other stuff with data
}
}
$ds = new DoSomething();
$ds->Parse(...);
$dse = new DoSomethingElse();
$dse->Parse(...);
Comme vous pouvez le voir tout le code pour tous les formats de fichiers est en classe Parser. Que puis-je faire pour rendre ce produit plus propre?
Merci Antoine
Il semble que c'est exactement ce que je cherchais :-) – Antoine
@Matt Ball: Une des meilleures suggestions. Vous avez 199K. – kta