对于更大的项目,我想跟踪一些传感器值,如速度,高度等。它们应在不同的位置存放,使用和操作。
我决定制作一个抽象类ValueContainer
,每个值类型Speed
都会扩展。它将具有它的值和时间戳。但是在我的统计数据(以及其他地方)中,我希望每种类型都有最小值和最大值以及平均值。
现在问题是:我是否创建了一个对象:
Speed extends ValueContainer{
long timestamp;
Double value;
EnumType type; // contains either avg, min, max or cur
int elementCounter; // for avg calculation
ValueContainer(Double value, EnumType type){
this.....
}
void addValue(Double value){
switch (type){
case ....
}
}
}
或者我制作的对象只包含他们需要的东西
CurrentSpeed extends ValueContainer{
long timestamp;
Double value;
ValueContainer(Double value){
this.....
}
void setValue(Double value){
}
和
AvgSpeed extends ValueContainer{
Double value;
int elementCounter; // for avg calculation
ValueContainer(Double value){
this.....
}
void addValue(Double value){
....
}
}
我在那里有更多的对象类型,但是开销更少,对他们的工作更少混淆?目前它只有3种类型,但我估计会在15到40之间。我已经有了一个枚举类型,并且每个类都使用它定义自己,所以我可以将ValueContainer
作为摘要传递给最小化接口showSomething(ValueContainer a){ switch (a.getValueType){ .... }}
上的方法数量