Je me demandais juste si ce serait de nombreuses couches d'indirection?Trop de couches d'indirection, est-ce trop?
Alt text http://img244.imageshack.us/img244/7371/classdiagram1.jpg
j'essayer de faire un peu d'expliquer. L'idée est que je construis une API au-dessus d'un objet COM qui expose uniquement les méthodes Do et Eval. Auparavant, je viens de passer un IComObject dans la classe Table et de travailler directement contre cela. Cela signifie que lorsque j'essaie de tester la classe Table, je me moque de IComObject et je m'inquiète des commandes envoyées à l'objet COM dans ma table classe. L'idée de base est que j'ai des coureurs de commande chargés d'appeler les bonnes commandes dans l'objet COM, et que l'objet Table (et autres) parle aux coureurs de la commande, sans avoir à se soucier des commandes en cours d'exécution . Puis dans mes tests je peux faire ceci:
Mock<TableCommandRunner> mockrunner = new Mock<TableCommandRunner>();
mockrunner.Setup(run => run.getName("DummyTable")).Returns("FakeName");
Table table = new Table("DummyTable");
//Table.Name just calls commandrunner.getName
Assert.Equal(table.Name,"FakeName");
Y a-t-il trop de couches d'indirection ou est-ce que ce serait OK?
NOTE: Je vais avoir beaucoup plus de classes que Table, des choses comme Map, Window, Object, etc. qui parleraient toutes aux coureurs de commande.
Je pense que cette question est un peu subjective, peut-être envisager de la reformuler. –
Le lien de l'image est cassé. –