请告诉我,如果我在这个例子中以正确的方式应用Tell, don't ask原则。
我有两个类,CalculationResults
有一个函数calculateMe()
,用于Data
进行一些计算。重要的是它存储结果。
class Data {
private:
int dataForCalculations;
public:
void calculate(CalculationResults& calculationResults) {
calculationResults.calculateMe(dataForCalculations);
}
};
class CalculationResults {
private:
int calculatedData;
public:
void calculateMe(int dataForCalculations) {
calculatedData = someCalculations(dataForCalculations);
}
};
// somewhere else:
Data data;
CalculationResults calculationResults;
data.calculate(calculationResults);
这段代码的第一个版本(在应用Tell 之前,不要问)没有使用Data::calculate
函数,但它有一个getter
for dataForCalculations
,所以我在某个地方调用了calculationResults.calculateMe(data.getDataForCalculations())
.
新版本更好吗?