让课程了解它的类型是否合适?

时间:2015-07-27 08:02:46

标签: java oop

我有以下界面:

public enum AggregatorType{
    DATA_BASE,
    GLOBAL_CACHE,
    //etc
}

public interface DataAggregator<T>{

     public AggregatorType getType();

     public Collection<T> getData();

}

我的问题是将不同类型放在同一个枚举中。对我来说,它至少闻起来不是一件好事(因为两个单独的类型放在同一个地方)。但我看不出它会带来什么样的潜在问题。你能帮我理解吗?

1 个答案:

答案 0 :(得分:3)

通常使用enum类型不是明确定义类类型的好习惯,因为在您希望的代码的某些其他部分中必须有一个控制结构(if-else / switch-case)用于分隔聚合方式的类型。

如果我是你,我会在这个界面中加上aggregate方法,我会让多态机制为我做出神奇的回应。 DataBaseAggregatorCacheAggregator可以用于实现此接口,以在这些数据的聚合中定义不同的行为。