2010-02-21 19 views
0

Cette question sera posée sous une forme spécifique, mais elle s'applique à une question plus générale, à savoir comment nommer des éléments non ordonnés sans impliquer de structure.Noms de variable d'éléments non ordonnés sans structure implicite

En termes de théorie des graphes, un graphe connecté, non orienté, contiendra des sommets connectés via des arêtes. Lors de la création d'une classe de bord avec deux variables de membre qui sont des sommets, représentant les deux sommets que le bord connecte, il était difficile de décrire les deux variables qui n'incluaient pas une forme de structure implicite.

Tenir compte class Edge{ Vertex v1; Vertex v2; } ou class Edge{ Vertex left; Vertex right; } ou class Edge{ Vertex a; Vertex b; }

{v1, v2} implique l'ordre et une plus grande taille possible que deux, mais un bord ne comporte que deux extrémités.

{a, b} est similaire à {v1, v2}, en ne substituant que des symboles différents. {Left, right} ou {up, down} impliquent une direction, ce qui peut être contre-intuitif quand il n'y a pas nécessairement de référence spatiale au graphe, puisque les graphes bruts sont de simples abstractions.

{start, end} fonctionnerait pour un graphe orienté mais semble arbitraire dans un graphe non orienté.

Le plus proche que je peux considérer est: class Edge{ Vertex oneEnd; Vertex otherEnd; } mais cela semble kludgey.

Quel nom est conforme aux bonnes pratiques pour de telles variables sans impliquer aucune forme de direction, de classement ou de structure?

Répondre

1

J'irais avec Edge { Vertex v1; Vertex v2; }. Je ne pense pas que l'utilisateur de votre code interprétera les suffixes numériques comme l'ordre, mais simplement comme des différenciateurs. Et si votre ensemble non ordonné contenait 10 ou 100 éléments, comme cela pourrait être le cas avec une structure polygonale par exemple? Je suis sûr que la solution la plus intuitive serait d'utiliser des indices/suffixes numériques pour nommer les objets.

+0

Sûrement il y a un meilleur nom .. quelqu'un! – user221566