私は定期的にいくつかの個別の状態を読み取り、いくつかのルールを状態の違いに適用して、いくつかのエラーを報告します。ルールは時間内に変更できます。
このような問題を解決するためのベストプラクティスは何ですか?
ありがとう。
私は定期的にいくつかの個別の状態を読み取り、いくつかのルールを状態の違いに適用して、いくつかのエラーを報告します。ルールは時間内に変更できます。
このような問題を解決するためのベストプラクティスは何ですか?
ありがとう。
ストラテジーパターンとは別に、シングルトンパターンも使用します。考えられる実装の1つ(これは非常にオープンですが、柔軟なルールセットが必要な場合は、「Rule」エンティティに別のクラスを使用する必要があります。ただし、この方法の方が理解しやすいです)。
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 *);
};
もちろん、これはヘッダーを示しています。実装ファイルがありません。お役に立てれば。
いくつかのルールエンジンを使用できます。Javaには多くのルールエンジンがありますが、C++についてはよくわかりません。この投稿はあなたを助けるかもしれません。