私が欲しいのは、任意のタイプの構成可能なプロパティ/変数を持つことができるクラスです。そして、これらの構成を設定および取得する方法は、インターフェースで定義されます。ある種のプラグインアーキテクチャになります。また、各プラグインには、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;
}
}