Bonjour,
Je suis face à un problème qui me parrait assez simple mais finalement j'ai du mal à trouver la meilleur approche...
Le principe est le suivant. Je dispose de différentes opérations simples (par éxemple : copier le fichier x vers y, écrire "bonjour" dans le fichier z ...). Je voudrais que l'utilisateur puisse selectionner les opérations à effectuer parmi une liste prédéfinie. Après validation du choix, les opération s'éxécutent les unes après les autres. Si une échoue, les opérations suivantes ne sont pas éxécutées. D'autre part, je voudrais qu'à chaque opération soit associé un nom et une description pour permettre à l'utilisateur de les reconnaitre et pour, éventuellement, générer un fichier de log.
Les opérations en elles memes son définies avant compilation mais je voudrais qu'il soit facile de les modifier ou d'en ajouter.
J'avais pensé faire une classe abstraite "AbstractOperation" puis, pour chaque opération, une classe qui implémente "AbstractOperation". Du genre (code C#) :
Mais je trouve la solution un peu lourde et tordue...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 abstract public class AbstractOperation { abstract public string Name { get; } abstract public string Description { get; } public void Execute() { Console.Write("Execution de " + this.Name + " : "); if (DoTheJob()) Console.WriteLine("Ok"); else Console.WriteLine("Echec"); } abstract protected bool DoTheJob(); } public class TestOperation : AbstractOperation { public override string Name { get { return "Test operation"; } } public override string Description { get { return "Une opération qui ne fait rien de particulier"; } } protected override bool DoTheJob() { //C'est ici que je réalise l'opération bool operationOk = true; return operationOk; } }
Avez-vous une meilleur idée ? Un patern à m'indiquer ?
Merci !
Partager