Je crée une hiérarchie d'objets qui représente une table qui dessine sur un contrôle. Ma hiérarchie ressemble à ceci:Quel dessin devrais-je utiliser pour qu'une classe puisse interroger l'un de ses ancêtres?
Table has multiple pages
Page has multiple lines
Line has multiple cells
Cell has multiple glyph
Je veux avoir une option (un paramètre) sur la table pour filtrer la colonne (cellules) affiche. Le code client peut faire quelque chose comme ceci:
myTable.ShowColumns(8,12) // Will display columns 8 to 12
Affichage et placer des cellules sur le contrôle est la responsabilité des lignes objects.How puis-je passer les informations dont les cellules doivent être affichés à partir de l'objet Table au Objet de ligne?
Devrais-je donner à chaque ligne une référence à l'objet table? Devrais-je essayer de transmettre les informations à chaque ligne à travers la hiérarchie à chaque fois que Table.ShowColumns()
est appelée?
Il doit y avoir une manière élégante?
Utilisez-vous l'héritage pour cela, il s'agit clairement d'une relation Has-A et non d'une relation Is-A. Si vous utilisez l'héritage, à quoi ressemble la hiérarchie des classes? –