GRASP - 信息专家模式 - 方法

时间:2014-03-07 17:23:40

标签: java design-patterns modeling grasp

在以下情况中,我正在寻找最佳实践方法。我有三个Java类:ManualComponentAutomaticComponentCustomComponent,它们扩展抽象类CalculationComponent并实现以下CalculableComponent接口:

public interface CalculableComponent {
    void calculate();
}

还有另一个类聚合了CalculationComponent中的ComponentBox

public class ComponentBox {
    private Set<CalculationComponent> components;

    public void calculateAll() {
        for (CalculationComponent c : components) {
            c.calculate();
        }
    }
}

Everythig工作得很完美,直到我被要求更改calculate()CustomComponent方法的实现。目前,此方法需要来自其他已计算CalculationComponents的信息(=来自Set<CalculationComponent> components的{​​{1}}的信息,如ComponentBox}。

我对GRASP的理解是calculate(components);类现在是信息专家,因为现在它包含了进行最终计算所需的所有信息(ComponentBox)。

我应该如何更改课程以获得最佳实践方法?

感谢您的帮助! 微米。

0 个答案:

没有答案