Ho riscontrato uno scenario in cui non riesco a decidere quale sia la migliore (o peggiore) strategia di denominazione. Il contesto è il seguente: una parentesi (come in un torneo) costituita da nodi, dove il nodo è costituito da due elementi astratti che possono essere un giocatore con seme, un bye o un riferimento a un altro nodo.
Vediamo chiaramente una gerarchia di inclusione, concettualmente parlando:
Bracket > Node > Element = Seed, Bye, Reference
Non riesco a decidere se nominarli con nomi composti e dichiarare ogni classe allo stesso livello (nessun nidificazione):
class Bracket:
pass
class BracketNode:
pass
class BracketNodeElement:
pass
class BracketNodeElementSeed(BracketNodeElement):
pass
class BracketNodeElementBye(BracketNodeElement):
pass
class BracketNodeElementReference(BracketNodeElement):
pass
Oppure puoi essere un po 'più ASCIUTTO con i nomi, ma rendendo il nome probabilmente più brutto:
class Bracket:
class Node:
class Element:
pass
class Seed(Element):
pass
class Bye(Element):
pass
class Reference(Element):
pass
L'accesso a un seme o a un ciao deve essere espresso in questo modo: Bracket.Node.Seed
e Bracket.Node.Bye
.
Qual è la solita strada da percorrere?