Bonjour,
J'ai fais une classe abstraite personne, une sous classe chef de projet, analyste et développeur. Je voudrais utiliser les delegates et les events pour gérer les tâches. Ma classe Personne à ce délégué :
Ma classe chef de projet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public delegate void actionAeffectuer(); abstract class Personne { public event actionAeffectuer OnActionEffectuee = null; public actionAeffectuer listeActionsAeffectuer; private String _nom; public Personne(String nom) { _nom = nom; } }
Ma classe projet :
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
36
37
38
39
40
41
42
43
44
45
46
47
48 class ChefProjet : Personne { private Projet _projet; ChefProjet(String nom) : base(nom) { Projet projet = new Projet(this); _projet = projet; } public void creerAnalyste(String nom) { Analayste analyste = new Analayste(nom); _projet.ListePersonnes.Add(analyste); } public void creerProgrammeur(String nom) { Programmeur programmeur = new Programmeur(nom); _projet.ListePersonnes.Add(programmeur); } public void action() { System.Console.WriteLine("Projet terminé !"); } public void ajouterActionAnalyser(Analayste analyste) { listeActionsAeffectuer += analyste.analyser; } public void ajouterActionConcevoir(Analayste analyste) { listeActionsAeffectuer += analyste.concevoir; } public void ajouterActionProgrammer(Programmeur programmeur) { listeActionsAeffectuer += programmeur.programmer; } public void ajouterActionTester(Programmeur programmeur) { listeActionsAeffectuer += programmeur.tester; } }
Classe Analyste :
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 class Projet { ChefProjet _chefProjet; List<Personne> _listePersonnes; public Projet(ChefProjet chefprojet) { _chefProjet = chefprojet; } public List<Personne> ListePersonnes { get { return _listePersonnes; } set { _listePersonnes = value; } } }
Classe Programmeur :
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 class Analayste : Personne { public Analayste(String nom) : base(nom) { } public void analyser() { System.Console.WriteLine("J'analyse"); } public void concevoir() { System.Console.WriteLine("Je conçois"); } }
Actuellement, je peux ajouter un succession d'actions à exécuter. Cependant, grâce aux events, j'aimerais que le chef de projet soit prévenu lorsqu'un développeur ou analyste termine sa tâche. Il faut que le chef de projet s'abonne aux analystes et programmeurs ? Dès que les tâches sont terminées, j'aimerais que le chef de projet lance sa méthode action(). Et comment attendre que toutes les tâches des analystes soient terminées avant que les développeurs commencent ?
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 class Programmeur : Personne { public Programmeur(String nom) : base(nom) { } public void programmer() { System.Console.WriteLine("Je programme"); } public void tester() { System.Console.WriteLine("Je teste"); } }
Merci.
Partager