Fab*_*ing 6 java oop class-design design-principles
我是面向对象编程概念的新手(在java中),我经常遇到以下设计问题:
我经常创建具有实例变量的类,这些变量在初始化时是未知的.随着时间的推移填充这些变量.这不是一个真正的问题,因为这些变量在填充之前是空的,因此我的问题更多地是关于这种情况下的最佳实践.
让我用一个例子解释一下.我上课了Car.每Car有color,vMax,weight,horsepower等.
当初始化Car只是它color,weight并且horsepower是已知的.- >Car(color, weight, horsepower)
在vMax现在可以计算(比方说:weight/horsepower).令我困惑的是,Car在初始化之后,"不完整"意味着vMax只会随着时间的推移填充.
我觉得这很难看,当然汽车的例子很简单.我经常会有10多个属性的类,其中一些是随着时间的推移计算出来的,后者在代码中后来用于计算该对象的更多属性.然后变得很难知道哪些变量已经在某一点填充而哪些不是.
我只是想知道这是"正常"和OOP的工作方式,还是应该避免这种情况.如果是的话,我会很高兴看到一些设计提示.
迈克尔
正如您所定义的,vMax应该method不仅仅是类的一个属性:
class Car {
private String color;
private double weight;
private double horsePower;
// constructor for Car
public Car (String color, double weight, double horsePower) {
this.color = color;
this.weight= weight;
this.horsePower= horsePower;
}
// usually I would create this as one-line-method... but to clarify:
public double getVMax() {
double vMax = weight / horsePower; // calculate vMax!!!
return vMax;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |