Je travaille actuellement sur un projet logiciel qui effectue la compression et l'indexation sur des images de vidéosurveillance. La compression consiste à scinder les objets d’arrière-plan et d’avant-plan, puis à enregistrer l’arrière-plan en tant qu’image statique et l’avant-plan en tant qu’image-objet.
Récemment, j'ai entrepris de revoir certaines des classes que j'ai conçues pour le projet.
J'ai remarqué qu'il y a beaucoup de classes qui n'ont qu'une seule méthode publique. Certaines de ces classes sont:
- VideoCompressor (avec une
compress
méthode qui prend une vidéo d'entrée de typeRawVideo
et renvoie une vidéo de sortie de typeCompressedVideo
). - VideoSplitter (avec une
split
méthode qui prend une vidéo d'entrée de typeRawVideo
et renvoie un vecteur de 2 vidéos de sortie, chacune de typeRawVideo
). - VideoIndexer (avec une
index
méthode qui prend une vidéo d'entrée de typeRawVideo
et renvoie un index vidéo de typeVideoIndex
).
Je me trouve instancier chaque classe juste pour faire des appels comme VideoCompressor.compress(...)
, VideoSplitter.split(...)
, VideoIndexer.index(...)
.
En apparence, j'estime que les noms de classe décrivent suffisamment la fonction à laquelle ils sont destinés et qu'il s'agit en réalité de noms. De manière correspondante, leurs méthodes sont également des verbes.
Est-ce réellement un problème?