Какой из этих 3 подходов выберет и почему?
// This is the one I would choose
class Car {
}
class FeeCalculator {
public double calculateFee(Car car) {
return 0;
}
}
// в этом случае проблема может заключаться в том, что мы используем среду ORM и пытаемся вызвать save с параметром Car
class Car {
private FeeCalculator calculator;
public double calculateFee() {
return calculator.calculateFee(this);
}
}
class FeeCalculator {
public double calculateFee(Car car) {
return 0;
}
}
// в этом случае упомянутая выше проблема решена, но мне не нравится этот дизайн
class Car {
public double calculateFee(FeeCalculator calculator) {
return calculator.calculateFee(this);
}
}
class FeeCalculator {
public double calculateFee(Car car) {
return 0;
}
}