1

我想要的是一个可以具有任何类型的可配置属性/变量的类。并且设置和获取这些配置的方式是在一个接口中定义的。它将成为某种插件架构。每个插件都有自己的未知类型的可配置参数(让它是字符串、双精度、整数等)。用户将能够在 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