Bonjour à toutes et à tous !
On a besoin d'itérer sur un historique dans un algorithme extérieur à la classe History
En pseudo code ça donne :
1- On remonte le temps d'un pas de temps t
2- On chope une info sur l'histoire au temps t et si une certaine condition A est remplie on s'arrête
3- Si on ne peut plus remonter le temps on s'arrête
4- Sinon on retourne à 1)
Le "truc" c'est que les temps viennent d'un objet history ayant une certaine étendue temporelle. L'étendue temporelle de l'objet peut être bornée (2014-2064) ou infinie (2014 - ...).
- Si l'histoire est bornée, l'algorithme parcourt l'histoire jusqu'à la fin, mais s'arrête avant si une certaine condition A est remplie.
- Si l'histoire est infinie, l'algorithme parcourt le temps indéfiniment jusqu'à ce que la condition A soit remplie
Du coup je me posais plusieurs questions sur le fait de généraliser l'algorithme pour les deux types d'histoires...
Dans le cas borné, Hisotry prend grosso modo l'implémentation d'une map<time_type, info_type>. J'ai filé un itérateur sur le temps pour récupérer les infos nécessaires.
Dans le cas infini, on pourrait avoir l'info donnée par une formule de récursion ou une constante. Mais y a t'il encore un sens à lui fournir des itérateurs ?
J'ai (encore et toujours) du mal à imaginer la généralité, et notamment la forme que doivent ces deux cas de "history". Comment départager entre :
- est ce une même classe avec deux implémentations,
- deux classes différentes avec une même interface publique est un algo template,
- un héritage (je commence à me méfier de ce dernier...) et un algo sur le type ancestral ?
Je me débats toujours sur ces questions, même si je penche pour la deuxième solution.
Désoléééééé pour les questions bêtes !!!
Merci d'avance de vos réponses !![]()
Partager