【发布时间】:2020-06-27 05:31:12
【问题描述】:
例如,我有Currency 和Exchange,它们处理Currency 的各种实现。我想为窗帘货币加价,我就是这样做的
interface Currency { double rate();}
interface Exchange { double convert(Currency currency, double money); }
class PrivateBank implements Exchange {
@Override
public double convert(Currency currency, double money) {
double extra_rate = 1.0;
if (currency instanceof CanadaDollar) { /// ?
extra_rate = 1.05;
}
return money * currency.rate() * extra_rate;
}
}
这里违反了 LSP 吗?
【问题讨论】:
标签: java oop solid-principles