在以下情况下,我正在寻找最佳实践方法。我有三个 Java 类:和ManualComponent,它们扩展抽象类并实现以下接口:AutomaticComponentCustomComponentCalculationComponentCalculableComponent
public interface CalculableComponent {
void calculate();
}
还有另一个类聚合了CalculationComponent这些ComponentBox:
public class ComponentBox {
private Set<CalculationComponent> components;
public void calculateAll() {
for (CalculationComponent c : components) {
c.calculate();
}
}
}
一切都很完美,直到我被要求更改calculate(). CustomComponent目前,此方法需要来自其他已计算的CalculationComponents信息(=来自Set<CalculationComponent> components位于ComponentBox此类的信息calculate(components);)。
我对 GRASP 的理解是ComponentBox该类现在是Information Expert,因为现在它包含进行最终计算所需的所有信息 ( calculateAll();)。
我应该如何改变我的课程以获得最佳实践方法?
谢谢您的帮助!M。