Presque chaque fois que je travaille sur des applications graphiques, j'ai trouvé que je devais appliquer un algorithme que j'ai écrit dans le passé ou trouvé sur le net qui correspond parfaitement à ce dont j'ai besoin, mais différent des données structures. Par exemple, je peux avoir parfois le "Point" exprimé comme Vector2
, ou comme PointF
, un Point
et ainsi de suite. Réutiliser un tel code dans différents projets force parfois à ajouter des références non désirées, et toujours à faire une conversion ennuyeuse des types de données, donc nous réévaluons l'algo pour la nouvelle structure de données. Donc la question: existe-t-il un moyen (intelligent) d'abstraire l'accesseur Point dans algo? Je pense que de fournir quelque chose comme un tuple de:Algorithme avec structures de points multiples
Func<TCoord,TPoint> Xaccessor
Func<TCoord,TPoint> Yaccessor
...
Func<TCoord,TPoint> ...accessor
mais je dois faire la même chose pour le réglage des valeurs de coordonnées, donc je finis avec un tel gâchis que personne ne me ni veulent utiliser mon implémentation de l'algorithme. Comment spécifier de manière concise l'accesseur de coordonnées ponctuelles? De plus nous devons prendre en compte aussi que parfois le point peut être exprimé par un float []. Je suppose que quelque chose pourrait être fait en utilisant des arbres d'expression, mais je ne suis pas agile sur ce point donc tout conseil serait vraiment apprécié! Merci beaucoup
EDIT La mise en œuvre d'une interface est pas une option, car les classes de points ne sont pas écrites par moi, et la réflexion est pas une option pour des raisons de performance.
+1 pour vos problèmes mais je suis assez convaincu qu'il n'y a pas bonne solution. –
@Konrad Rudolph, dans un tel cas ne serait pas agréable d'avoir ces structures dans le système que nous avons float etc? C'est à dire un vecteur Point2d/3d et une matrice comme toujours les classes disponibles ... –