1

私が欲しいのは、任意のタイプの構成可能なプロパティ/変数を持つことができるクラスです。そして、これらの構成を設定および取得する方法は、インターフェースで定義されます。ある種のプラグインアーキテクチャになります。また、各プラグインには、unknonwnタイプの独自の構成可能なパラメーターがあります(string、double、intなど)。ユーザーはGUIでこれらを設定でき、プラグインのホストアプリケーションによってデータベースに保存されます。

問題は、これらの構成を任意のタイプに設定するときに、この形式の抽象化を実現する方法がわからないことです。クラスを設定するときにObject、たとえばaにキャストする必要がない場合は便利です。double

私は自分自身をより明確にするためにこのpseudoコードを持っています。以下を参照してください。

public class Configurable<T>
{
    string Name;
    T Value;
    string Description;
}

public interface iAmConfigurable
{
    void Set(Configurable<T>);
    Configurable<T> Get(string name);
}

public abstract class MyBaseClass : iAmConfigurable
{
    public abstract void Set(Configurable<T>);
    public abstract Configurable<T> Get(string name);
}

public class MyDerivedClass : MyBaseClass
{
    Configurable<int> MinimumSlope = new Configurable<int>
    {
        Name = "MinimumSlope",
        Value = 20,
        Description = "The lowest the slope of the trend may get before triggering the alarm"
    }

    public abstract void Set(string name, T value)
    {
        if(name == "MinimumSlope") MinimumSlope.Value = value;
    }

    public abstract Configurable<T> Get(string name)
    {
        if(name == "MinimumSlope") return MinimumSlope;
    }
}
4

0 に答える 0