J'ai un problème lorsque les données sont représentées sous la forme d'un arbre (Ex: arbre binaire). L'arbre a des nœuds de nature différente. Donc, fondamentalement, il y a une classe de base et ensuite différents noeuds en sont dérivés.Question de conception de l'objectif C (iOS)
Ces données doivent également être présentées à l'écran (à l'utilisateur) et ceci implique un dessin personnalisé de chaque nœud. La façon dont le noeud est dessiné dépend du type du noeud. L'arborescence implique également un processus de simplification à l'aide duquel une nouvelle forme simplifiée de l'arborescence d'origine est dérivée sur la base de certaines règles.
Afin de dessiner ces nœuds, j'ai besoin de maintenir la position et la taille. Je voudrais savoir comment je peux séparer ce code et les données nécessaires pour dessiner l'arbre sur l'écran à partir des autres données dans le nœud qui sera utilisé pour la simplification.
J'espère que la question a eu du sens. Merci pour l'aide et le temps.
Pour tirer le nœud, nous avons besoin de connaître sa position, la hauteur et la largeur qui est calculée dynamiquement. L'arbre T sera simplifié à un nouvel arbre T1. Donc, fondamentalement, dans la classe de nœud, nous devons maintenir 2 types de données. Les données qui seront utilisées pour représenter le nœud sur l'écran et les données qui seront utilisées pour transformer l'arbre T en T1. Ma question est de savoir si ces deux données peuvent être dans la même classe (Node) ou y a-t-il un meilleur design pour les séparer? – Mithin
sous un point de vue design, je pense qu'il est préférable de les séparer. Si "Node" est le nom de la classe, je vais mettre une classe interne appelée "NodeData" dans la classe Node. Donc vous séparez efficacement les données et reliez "NodeData" à la classe "Node". Si je me souviens, il devrait être le "modèle de composition" dans le langage de conception UML. – robob
J'espère que le commentaire vous a été utile ... – robob