组合组件的框架

时间:2015-03-22 10:40:10

标签: java

我正在尝试找到一个框架,或者一种实现组合各种组件的方法的好方法,类似于电子工具包。这样它可以使用xml(例如Spring)连接在一起。我希望用户能够将不同的组件串在一起,而不必担心Java。

我正在考虑的设置将具有以下内容:

public interface Input<T> {
    public T getValue();
}

public interface Output<T> {
    public void setValue(T value);
}

public class Wire<T> implements Input<T>, Output<T> {
    private T value;
    public T getValue() { return value; }
    public void setValue(T value) { this.value = value ; };
}

然后组件就像

public interface Component {
    public void evaluate(); 
}
public class Multiplier implements Component {
    private Input<Double> inA;
    private Input<Double> inB;
    private Output<Double> out;

    public Multiplier(Input<Double> inA, Input<Double> inB, Output<Double> out) {
        this.inA = inA;
        this.inB = inB;
        this.out = out;
    }

    public void evaluate() {
        out.setValue(inA.getValue() * inB.getValue());
    }
}

main() {
    Wire inA = new Wire();
    Wire squareOut = new Wire();

    Component squarer = new Multiplier(inA, inA, output)
}

因此,您可以将一个组件的输出绑定到另一个组件的输入中。我已经玩弄了Wires的想法,知道他们连接了什么输出,以便他们可以调用他们的组件的评估...但我认为保持一个单独的“时钟”以便循环依赖可能更容易可以控制。

实施起来并不难,如果已经存在公共图书馆,我只想使用公共图书馆。我很难找到一个。

任何有关实施类似内容或做什么的建议都会非常有用。

1 个答案:

答案 0 :(得分:-1)

您正在谈论依赖注入框架。

看看Spring,Google Guice或PicoContainer。