我正在尝试找到一个框架,或者一种实现组合各种组件的方法的好方法,类似于电子工具包。这样它可以使用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的想法,知道他们连接了什么输出,以便他们可以调用他们的组件的评估...但我认为保持一个单独的“时钟”以便循环依赖可能更容易可以控制。
实施起来并不难,如果已经存在公共图书馆,我只想使用公共图书馆。我很难找到一个。
任何有关实施类似内容或做什么的建议都会非常有用。
答案 0 :(得分:-1)
您正在谈论依赖注入框架。
看看Spring,Google Guice或PicoContainer。