我有以下界面:
public enum AggregatorType{
DATA_BASE,
GLOBAL_CACHE,
//etc
}
public interface DataAggregator<T>{
public AggregatorType getType();
public Collection<T> getData();
}
我的问题是关于将不同的类型放在同一个枚举中。对我来说,至少闻起来不是一件好事(因为两个不同的类型放在同一个地方)。但我看不出它会导致什么潜在问题。你不能帮我理解吗?
最佳答案
通常使用 enum
类型不是显式定义类类型的好习惯,因为在代码的其他部分,您需要有一个控制结构(if-else/switch-case ) 在这种类型上以分离聚合的方式。
如果我是你,我会在这个接口(interface)中放置一个聚合
方法,我会让Polymorphism机制为我施展魔法。 DataBaseAggregator
和 CacheAggregator
可以实现这个接口(interface)来定义这些数据聚合的不同行为。
关于java - 让类(class)知道它的类型是不是太好了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647847/