0

したがって、基本的に、特定の値を計算するためのさまざまな科学モデル (アルゴリズム) があります。各アルゴリズムは、モデルを微調整するために異なるパラメーターのセットを持つことができます。これらのパラメータは、ユーザーが変更できる必要があります。(今のところ、単純なプロパティ ファイルになります)。私が使用している言語は Java です。

だから私はこの出版物をフォローしようとしました

http://www.hillside.net/plop/2010/papers/sobajic.pdf

上記の pdf のコード サンプルを次に示します。C# であると仮定します。

abstract class Algorithm
{
    public Algorithm()
        { }
    protected Parameter[] parameters;
    public Parameter[] getParameters()
        { return parameters.copy(); }
    public abstract void execute();
}

abstract class Parameter
{
    private string name;
    public string GetName()
        { return name; }
    public Parameter(string name)
        { this.name = name; }
}
class BoolParameter : Parameter
{
    private bool Value;
    public bool GetValue()
        { return Value; }
    public void SetValue(bool value)
        { Value = value; }
    public BoolParameter(string name, bool defaultvalue)
        : base(name)
    {
    Value = defaultvalue;
    }
}
class IntParameter : Parameter
{
private int min;
    private int max;
    private int Value;
    public int GetValue()
        { return Value; }
    public void SetValue(int value)
    {
        if (value < min)
        throw new ArgumentOutOfRange(GetName() + " can’t be less than " + min);
        if (value > max)
        throw new ArgumentOutOfRange(GetName() + " can’t be greater than " + max);
        Value = value;
    }
    public IntParameter(string name, int min, int max, int defaultvalue) : base(name)
    {
        this.min = min;
        this.max = max;
        Value = defaultvalue;
    }
}

パラメータ値を設定するにはどうすればよいですか? 具体的なアルゴリズムが 2 つのパラメータの配列またはリストを返すと仮定します。1 つは IntegerParameter で、もう 1 つは StringParameter です。ただし、上記のパターンの Parameter インターフェイスには setValue メソッドがないため、クライアントはどのようにしてパラメーター値を設定し、その型を知ることができますか?

4

1 に答える 1

0

true と false の代わりに 0 と 1 を使用するなど、可能な値が 2 つしかない場合でも、すべてのパラメーターをintorとして扱います。double

アルゴには、結果を生成できるように変更できるパラメーターのコレクションが必要です。

于 2012-07-06T11:29:02.123 に答える