「xyz = 5 then if」のようなものを保持するさまざまな「設定オブジェクト」用のクラスを作成して、それらのルールにいくつかのルールとアクションを転送する必要があります。クラスデザイン:コンフィグレーションオブジェクト
誰でも私のようなクラスの巧妙なデザインで私を助けてもらえますか?
私はC#.NET 3.5
「xyz = 5 then if」のようなものを保持するさまざまな「設定オブジェクト」用のクラスを作成して、それらのルールにいくつかのルールとアクションを転送する必要があります。クラスデザイン:コンフィグレーションオブジェクト
誰でも私のようなクラスの巧妙なデザインで私を助けてもらえますか?
私はC#.NET 3.5
あなたが参照しているルールは、あなたがこのようなクラスを持つことができ、アクションにマップする必要がある場合:
interface IRule<T>
{
void Apply(T obj);
}
class PredicateRule<T> : IRule<T>
{
public ActionRule(Func<T, bool> p, Action<T> a)
{
this.predicate = p;
this.action = a;
}
readonly Func<T, bool> predicate;
readonly Action<T> action;
public void Apply(T obj)
{
if (this.predicate(obj))
this.action(obj);
}
}
それでは、あなたのルールのように宣言することができ、「XYZ = 5、その後は...場合」 :
var r = new PredicateRule<XyzClass>(x => x == 5, x => { //then... });
ないあなたが後にしているのかわからを使用していますが、しかし、あなたは、オブジェクトと同様のApplyRules()メソッドを作成するときに実行するアクションを実行するためにオーバーライドSETDEFAULTS()メソッドを持つことができますオブジェクトを保存する前にアクション?
+1 - これは、あなたの回答がポップアップするまで私がこの場所に行っていた場所に近いです。私は辞書、アクション>にそれらを格納することを考えていました。これは一連のルールをスキャンし、ルールが評価された場所でアクションを適用することを可能にします。 –
tvanfosson
Hehe ... IRule!あなたは落ち着いている! –
辞書からルールへの割り当ては良い考えだと思います。あなたはルールとアクションクラスを宣言してからDictに割り当てますか? – Kai