J'utiliserais aussi le motif singleton, en dehors de celui de Strategy. Une mise en oeuvre possible (. Bien que ce soit tout à fait ouvert, si vous voulez un ensemble flexible de règles que vous devraient utiliser une autre classe pour l'entité « Règle » Cependant, cette façon, il est plus simple à comprendre):
class Rules {
public:
virtual bool rule_1(Data *) = 0;
// ...
virtual bool rule_n(Data *) = 0;
static Rules * getRules()
{
// The only place in which to change the rule set
if (ruleSet == NULL) ruleSet = new Rules_September2010();
return ruleSet;
}
protected:
Rules();
static Rules * ruleSet;
};
class Rules_August2010 : public Rules {
public:
bool rule_1(Data *);
bool rule_n(Data *);
};
class Rules_September2010 : public Rules {
public:
bool rule_1(Data *);
bool rule_n(Data *);
};
de Bien sûr, c'est une indication de l'en-tête (s). Les fichiers d'implémentation sont manquants. J'espère que cela t'aides.
Les règles peuvent être modifiées dans le temps cela signifie-t-il en temps réel? – DumbCoder
Pas nécessairement, mais entendre des idées à propos de temps réel pourrait être agréable. – metdos