J'ai besoin d'une classe Strategies, qui ait la même partie private, mais
avec la partie publique différente, car j'ai besoin de moins de
variables...
Comme je ne connais (pour l'instant) rien à l'héritage, je voulais savoir
si j'avais besoin de passer par là, ou bien s'il fallait que je crée une
nouvelle classe...
J'essaie de comprendre le code, qui même s'il n'est pas compliqué, utilise beaucoup de classes et structures par rapport à ce que je fais moi, ce qui ne me facilite pas la tâche...
Je dirais quand même, après relecture, que ce que tu me proposes est plus compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est moi qui ne suis pas encore assez habitué...
En tout cas, merci de ton exemple, il ne me reste plus qu'à le comprendre...
On peut déjà commencer par mettre de l'ordre dans tout ça :
struct Intervalle
{
int debut;
int fin;
double Duree() { return fin - debut; }
};
class GestionPauses
{
public:
typedef Intervalle Pause; /* Au singulier : un Intervalle == une
Pause */
typedef std::vector<Pauses> ListePauses;
typedef ListePauses::const_iterator const_iterator;
int DureeTotale() const;
// Rajouter ici constructeurs et push_back()...
private:
ListePauses liste;
};
C'est mieux de passer par des structures que par la STL? (Intervalle au
lieu de pair<int,int>)
int CalculeDuree (Intervalle const& intervalle_general,
GestionPauses const& pauses);
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont
pas encapsulées dans une classe...
class Possessions
{
private:
GestionPauses pauses;
J'essaie de comprendre le code, qui même s'il n'est pas compliqué,
utilise beaucoup de classes et structures par rapport à ce que je fais
moi, ce qui ne me facilite pas la tâche...
Je dirais quand même, après relecture, que ce que tu me proposes est plus
compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est
moi qui ne suis pas encore assez habitué...
En tout cas, merci de ton exemple, il ne me reste plus qu'à le
comprendre...
J'essaie de comprendre le code, qui même s'il n'est pas compliqué, utilise beaucoup de classes et structures par rapport à ce que je fais moi, ce qui ne me facilite pas la tâche...
Je dirais quand même, après relecture, que ce que tu me proposes est plus compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est moi qui ne suis pas encore assez habitué...
En tout cas, merci de ton exemple, il ne me reste plus qu'à le comprendre...
Zoubidaman
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce qu'un objet "Strategies" représente ? Idem pour "Possessions". Deux classes de forme très proche peuvent n'avoir aucun lien de parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a souvent des éléments qui font que le jeu s'est arrêté alors que la stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une stratégie, il faut soustraire à l'intervalle de temps maximal la durée totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une équipe possède le ballon. En général, les instants d'une possession = instants d'une stratégie, mais il arrive qu'on change de stratégie pendant une possession...
Donc voilà pourquoi ces deux objets sont si proches...
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce
qu'un objet "Strategies" représente ? Idem pour "Possessions".
Deux classes de forme très proche peuvent n'avoir aucun lien de
parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans
un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a
souvent des éléments qui font que le jeu s'est arrêté alors que la
stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une
stratégie, il faut soustraire à l'intervalle de temps maximal la durée
totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une
équipe possède le ballon. En général, les instants d'une possession =
instants d'une stratégie, mais il arrive qu'on change de stratégie pendant
une possession...
Donc voilà pourquoi ces deux objets sont si proches...
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce qu'un objet "Strategies" représente ? Idem pour "Possessions". Deux classes de forme très proche peuvent n'avoir aucun lien de parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a souvent des éléments qui font que le jeu s'est arrêté alors que la stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une stratégie, il faut soustraire à l'intervalle de temps maximal la durée totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une équipe possède le ballon. En général, les instants d'une possession = instants d'une stratégie, mais il arrive qu'on change de stratégie pendant une possession...
Donc voilà pourquoi ces deux objets sont si proches...
Zoubidaman
Clairement la composition sur la base d'une classe Pause. En plus d'y regrouper un certain nombre de fonctionnalités (pas juste des données, donc), tu pourras en profiter pour simplifier tes constructeurs en leur fournissant un paramètre de type Pause au lieu de ta longue liste de trucs...
Chris
Je pensais aussi à cela...
Néanmoins, je suis obligé d'avoir un constructeur aussi long... J'explique pourquoi plus haut...
Clairement la composition sur la base d'une classe Pause. En plus d'y
regrouper un certain nombre de fonctionnalités (pas juste des données,
donc), tu pourras en profiter pour simplifier tes constructeurs en
leur fournissant un paramètre de type Pause au lieu de ta longue liste
de trucs...
Chris
Je pensais aussi à cela...
Néanmoins, je suis obligé d'avoir un constructeur aussi long... J'explique
pourquoi plus haut...
Clairement la composition sur la base d'une classe Pause. En plus d'y regrouper un certain nombre de fonctionnalités (pas juste des données, donc), tu pourras en profiter pour simplifier tes constructeurs en leur fournissant un paramètre de type Pause au lieu de ta longue liste de trucs...
Chris
Je pensais aussi à cela...
Néanmoins, je suis obligé d'avoir un constructeur aussi long... J'explique pourquoi plus haut...
Loïc Joly
Zoubidaman wrote:
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce qu'un objet "Strategies" représente ? Idem pour "Possessions". Deux classes de forme très proche peuvent n'avoir aucun lien de parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a souvent des éléments qui font que le jeu s'est arrêté alors que la stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une stratégie, il faut soustraire à l'intervalle de temps maximal la durée totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une équipe possède le ballon. En général, les instants d'une possession = instants d'une stratégie, mais il arrive qu'on change de stratégie pendant une possession...
Donc voilà pourquoi ces deux objets sont si proches...
Dans ce cas, il y a peut-être moyen de définir une classe durée, qui aurait commes variable membre un instant de début, un de fin, et une référence à une partie (qui elle aurait la liste de toutes les pauses).
Cette classe fournirait des fonction comme dureeTotale, dureeHorsPause,...
Et cette classe serait utilisée par strategie et possession.
-- Loïc
Zoubidaman wrote:
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce
qu'un objet "Strategies" représente ? Idem pour "Possessions".
Deux classes de forme très proche peuvent n'avoir aucun lien de
parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans
un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a
souvent des éléments qui font que le jeu s'est arrêté alors que la
stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une
stratégie, il faut soustraire à l'intervalle de temps maximal la durée
totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une
équipe possède le ballon. En général, les instants d'une possession =
instants d'une stratégie, mais il arrive qu'on change de stratégie pendant
une possession...
Donc voilà pourquoi ces deux objets sont si proches...
Dans ce cas, il y a peut-être moyen de définir une classe durée, qui
aurait commes variable membre un instant de début, un de fin, et une
référence à une partie (qui elle aurait la liste de toutes les pauses).
Cette classe fournirait des fonction comme dureeTotale, dureeHorsPause,...
Et cette classe serait utilisée par strategie et possession.
C'est difficile à dire sans en savoir plus. En particulier : qu'est-ce qu'un objet "Strategies" représente ? Idem pour "Possessions". Deux classes de forme très proche peuvent n'avoir aucun lien de parenté, si leurs significations sont très différentes.
L'objet stratégies représente les moments où une stratégie est active dans un match de basket...
Elle a un début et une fin, identifiables, ainsi que des pauses, car il y a souvent des éléments qui font que le jeu s'est arrêté alors que la stratégie continue. Si bien que lorsqu'on veut calculer la durée d'une stratégie, il faut soustraire à l'intervalle de temps maximal la durée totale des pauses...
Pour l'objet possession, c'est pareil, sauf que c'est tout le temps qu'une équipe possède le ballon. En général, les instants d'une possession = instants d'une stratégie, mais il arrive qu'on change de stratégie pendant une possession...
Donc voilà pourquoi ces deux objets sont si proches...
Dans ce cas, il y a peut-être moyen de définir une classe durée, qui aurait commes variable membre un instant de début, un de fin, et une référence à une partie (qui elle aurait la liste de toutes les pauses).
Cette classe fournirait des fonction comme dureeTotale, dureeHorsPause,...
Et cette classe serait utilisée par strategie et possession.
-- Loïc
Christophe Lephay
"Zoubidaman" a écrit dans le message de news:
Je dirais quand même, après relecture, que ce que tu me proposes est plus compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est moi qui ne suis pas encore assez habitué...
Le cout de création de plusieurs classes s'amortit sur la complexité de ton problème. Si ton problème est simplissime, ça se trouve, le mieux c'est de ne faire qu'une classe (bon je frole la caricature, mais c'est à dessein)...
Dire que c'est plus compliqué, c'est possible (mais ça l'est surtout parce que son code et pas le tien). Dire que ça vaut le coup, c'est impossible à dire sans connaitre plus en détail ce que tu veux faire...
Chris
"Zoubidaman" <zoubidaman@hotmail.com> a écrit dans le message de
news:Xns93D52DAD3BF5zoubidamanhotmailcom@213.228.0.196...
Je dirais quand même, après relecture, que ce que tu me proposes est plus
compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est
moi qui ne suis pas encore assez habitué...
Le cout de création de plusieurs classes s'amortit sur la complexité de ton
problème. Si ton problème est simplissime, ça se trouve, le mieux c'est de
ne faire qu'une classe (bon je frole la caricature, mais c'est à dessein)...
Dire que c'est plus compliqué, c'est possible (mais ça l'est surtout parce
que son code et pas le tien). Dire que ça vaut le coup, c'est impossible à
dire sans connaitre plus en détail ce que tu veux faire...
Je dirais quand même, après relecture, que ce que tu me proposes est plus compliqué d'utilisation que ce que j'avais commencé, non? Ou bien c'est moi qui ne suis pas encore assez habitué...
Le cout de création de plusieurs classes s'amortit sur la complexité de ton problème. Si ton problème est simplissime, ça se trouve, le mieux c'est de ne faire qu'une classe (bon je frole la caricature, mais c'est à dessein)...
Dire que c'est plus compliqué, c'est possible (mais ça l'est surtout parce que son code et pas le tien). Dire que ça vaut le coup, c'est impossible à dire sans connaitre plus en détail ce que tu veux faire...
Chris
Michaël Delva
Dire que ça vaut le coup, c'est impossible à dire sans connaitre plus en détail ce que tu veux faire...
Chris
Ce que je veux faire:
je lis un fichier XML contenant les statistiques d'un match de basket. Sont également présentes les possessions et les stratégies, sous la forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci: Debut possession: 12
Debut 1ère pause: 87 Fin 1ère pause: 92 Debut 2ème pause: 127 Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur durée effective (donc le temps total - temps des pauses), et de savoir si une statistique d'un joueur s'est produite dans cette stratégie ou possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs des début et fin des événements...
Dire que ça vaut le coup, c'est
impossible à dire sans connaitre plus en détail ce que tu veux
faire...
Chris
Ce que je veux faire:
je lis un fichier XML contenant les statistiques d'un match de basket.
Sont également présentes les possessions et les stratégies, sous la
forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci:
Debut possession: 12
Debut 1ère pause: 87
Fin 1ère pause: 92
Debut 2ème pause: 127
Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur
durée effective (donc le temps total - temps des pauses), et de savoir si
une statistique d'un joueur s'est produite dans cette stratégie ou
possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs
des début et fin des événements...
Dire que ça vaut le coup, c'est impossible à dire sans connaitre plus en détail ce que tu veux faire...
Chris
Ce que je veux faire:
je lis un fichier XML contenant les statistiques d'un match de basket. Sont également présentes les possessions et les stratégies, sous la forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci: Debut possession: 12
Debut 1ère pause: 87 Fin 1ère pause: 92 Debut 2ème pause: 127 Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur durée effective (donc le temps total - temps des pauses), et de savoir si une statistique d'un joueur s'est produite dans cette stratégie ou possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs des début et fin des événements...
int CalculeDuree (Intervalle const& intervalle_general, GestionPauses const& pauses);
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Dans un langage qui a des méthodes, peut-être. En C++ il n'y a que des fonctions. Certaines, notamment celles qui accèdent à des données privées d'une classe, doivent être membres de cette classe. Mais s'il n'y a aucune raison pour une fonction donnée d'être membre d'une classe (comme c'est le cas ici), elle peut tout à fait être libre. Ce qui peut être douteux, par contre, c'est de déclarer une fonction libre amie d'une classe, et ainsi lui laisser accès aux données privées.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 12 Aug 2003 02:29:04 GMT, Zoubidaman <zoubidaman@hotmail.com>
wrote:
int CalculeDuree (Intervalle const& intervalle_general,
GestionPauses const& pauses);
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont
pas encapsulées dans une classe...
Dans un langage qui a des méthodes, peut-être. En C++ il n'y a que des
fonctions. Certaines, notamment celles qui accèdent à des données
privées d'une classe, doivent être membres de cette classe. Mais s'il
n'y a aucune raison pour une fonction donnée d'être membre d'une
classe (comme c'est le cas ici), elle peut tout à fait être libre.
Ce qui peut être douteux, par contre, c'est de déclarer une fonction
libre amie d'une classe, et ainsi lui laisser accès aux données
privées.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
int CalculeDuree (Intervalle const& intervalle_general, GestionPauses const& pauses);
J'ai souvent lu qu'il était déconseillé de créer des méthodes qui ne sont pas encapsulées dans une classe...
Dans un langage qui a des méthodes, peut-être. En C++ il n'y a que des fonctions. Certaines, notamment celles qui accèdent à des données privées d'une classe, doivent être membres de cette classe. Mais s'il n'y a aucune raison pour une fonction donnée d'être membre d'une classe (comme c'est le cas ici), elle peut tout à fait être libre. Ce qui peut être douteux, par contre, c'est de déclarer une fonction libre amie d'une classe, et ainsi lui laisser accès aux données privées.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Fabien LE LEZ
On 12 Aug 2003 02:29:04 GMT, Zoubidaman wrote:
J'essaie de comprendre le code, qui même s'il n'est pas compliqué, utilise beaucoup de classes et structures par rapport à ce que je fais moi, ce qui ne me facilite pas la tâche...
Pourtant c'est la clé pour un code propre et fiable. D'une manière générale, si tu as plusieurs variables qui vont ensemble (ici, un début et une fin), c'est logique d'en faire une classe à part. Ainsi, tu n'as pas de références à un début et une fin (voire à plusieurs) dans tout le code de ta grosse classe, mais des références à un intervalle -- et c'est la classe "Intervalle" qui s'occupe de la gestion de tout ce qui va autour -- la durée par exemple.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 12 Aug 2003 02:29:04 GMT, Zoubidaman <zoubidaman@hotmail.com>
wrote:
J'essaie de comprendre le code, qui même s'il n'est pas compliqué,
utilise beaucoup de classes et structures par rapport à ce que je fais
moi, ce qui ne me facilite pas la tâche...
Pourtant c'est la clé pour un code propre et fiable.
D'une manière générale, si tu as plusieurs variables qui vont ensemble
(ici, un début et une fin), c'est logique d'en faire une classe à
part. Ainsi, tu n'as pas de références à un début et une fin (voire à
plusieurs) dans tout le code de ta grosse classe, mais des références
à un intervalle -- et c'est la classe "Intervalle" qui s'occupe de la
gestion de tout ce qui va autour -- la durée par exemple.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
J'essaie de comprendre le code, qui même s'il n'est pas compliqué, utilise beaucoup de classes et structures par rapport à ce que je fais moi, ce qui ne me facilite pas la tâche...
Pourtant c'est la clé pour un code propre et fiable. D'une manière générale, si tu as plusieurs variables qui vont ensemble (ici, un début et une fin), c'est logique d'en faire une classe à part. Ainsi, tu n'as pas de références à un début et une fin (voire à plusieurs) dans tout le code de ta grosse classe, mais des références à un intervalle -- et c'est la classe "Intervalle" qui s'occupe de la gestion de tout ce qui va autour -- la durée par exemple.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Fabien LE LEZ
On 12 Aug 2003 09:06:40 GMT, "Michaël Delva" wrote:
int DureeTotale() const;
pourquoi mettre le const après la fonction? Quelle est la différence entre là et au début?
Le "const" à la fin indique que la fonction membre ne modifie pas l'objet.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 12 Aug 2003 09:06:40 GMT, "Michaël Delva" <zoubidaman@hotmail.com>
wrote:
int DureeTotale() const;
pourquoi mettre le const après la fonction?
Quelle est la différence entre là et au début?
Le "const" à la fin indique que la fonction membre ne modifie pas
l'objet.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/serveurs/tablefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
On 12 Aug 2003 09:06:40 GMT, "Michaël Delva" wrote:
int DureeTotale() const;
pourquoi mettre le const après la fonction? Quelle est la différence entre là et au début?
Le "const" à la fin indique que la fonction membre ne modifie pas l'objet.
-- Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/ et http://www.aminautes.org/forums/serveurs/tablefr.html Archives : http://groups.google.com/advanced_group_search http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
Christophe Lephay
"Michaël Delva" a écrit dans le message de news:
je lis un fichier XML contenant les statistiques d'un match de basket. Sont également présentes les possessions et les stratégies, sous la forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci: Debut possession: 12
Debut 1ère pause: 87 Fin 1ère pause: 92 Debut 2ème pause: 127 Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur durée effective (donc le temps total - temps des pauses), et de savoir si une statistique d'un joueur s'est produite dans cette stratégie ou possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs des début et fin des événements...
Tu peux très bien imaginer un système basé sur des évènements, dans lequel une pause, un changement de stratégie ou de ballon seraient des évènements, communicant avec des agents, ces derniers étant notifiés dès qu'un certain évènement (auquel ils ont souscrit) se produit, et qui feraient alors un traitement quelconque. Celà permettrait d'avoir un couplage bien moins fort entre les données que tu gères (qui seraient extensibles par simple nouvelle dérivation d'une classe de base "evenement"), et les analyses que tu leur appliques (extensibles par la création de nouveaux agents)...
Celà faciliterait aussi la création de nouvelles analyses de manière dynamique, notemment en permettant à différents agents de collaborer entre eux (tu pourrais très bien avoir une classe ou une hiérarchie "analyse" qui ferait appel à plusieurs agents).
Chris
"Michaël Delva" <zoubidaman@hotmail.com> a écrit dans le message de
news:Xns93D56E013855Bzoubidamanhotmailcom@213.228.0.133...
je lis un fichier XML contenant les statistiques d'un match de basket.
Sont également présentes les possessions et les stratégies, sous la
forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci:
Debut possession: 12
Debut 1ère pause: 87
Fin 1ère pause: 92
Debut 2ème pause: 127
Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur
durée effective (donc le temps total - temps des pauses), et de savoir si
une statistique d'un joueur s'est produite dans cette stratégie ou
possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs
des début et fin des événements...
Tu peux très bien imaginer un système basé sur des évènements, dans lequel
une pause, un changement de stratégie ou de ballon seraient des évènements,
communicant avec des agents, ces derniers étant notifiés dès qu'un certain
évènement (auquel ils ont souscrit) se produit, et qui feraient alors un
traitement quelconque. Celà permettrait d'avoir un couplage bien moins fort
entre les données que tu gères (qui seraient extensibles par simple nouvelle
dérivation d'une classe de base "evenement"), et les analyses que tu leur
appliques (extensibles par la création de nouveaux agents)...
Celà faciliterait aussi la création de nouvelles analyses de manière
dynamique, notemment en permettant à différents agents de collaborer entre
eux (tu pourrais très bien avoir une classe ou une hiérarchie "analyse" qui
ferait appel à plusieurs agents).
je lis un fichier XML contenant les statistiques d'un match de basket. Sont également présentes les possessions et les stratégies, sous la forme:
12 87 92 127 162 198
Qu'on peut lire comme ceci: Debut possession: 12
Debut 1ère pause: 87 Fin 1ère pause: 92 Debut 2ème pause: 127 Fin 2ème pause: 162
Fin possession: 198
(C'est pareil pour les stratégies)
Moi je veux stocker ça dans un vecteur vector<Possession> toto;
Par rapport à ces possessions et stratégies, j'ai besoin de savoir leur durée effective (donc le temps total - temps des pauses), et de savoir si une statistique d'un joueur s'est produite dans cette stratégie ou possession (pour établir un compte-rendu)...
Donc Possessions et Stratégies ne sont là que pour stocker les valeurs des début et fin des événements...
Tu peux très bien imaginer un système basé sur des évènements, dans lequel une pause, un changement de stratégie ou de ballon seraient des évènements, communicant avec des agents, ces derniers étant notifiés dès qu'un certain évènement (auquel ils ont souscrit) se produit, et qui feraient alors un traitement quelconque. Celà permettrait d'avoir un couplage bien moins fort entre les données que tu gères (qui seraient extensibles par simple nouvelle dérivation d'une classe de base "evenement"), et les analyses que tu leur appliques (extensibles par la création de nouveaux agents)...
Celà faciliterait aussi la création de nouvelles analyses de manière dynamique, notemment en permettant à différents agents de collaborer entre eux (tu pourrais très bien avoir une classe ou une hiérarchie "analyse" qui ferait appel à plusieurs agents).