从具有未使用方法的类继承是否违反了接口隔离原则?
例如:
abstract class Base
{
public void Receive(int n)
{
// . . . (some important work)
OnMsg(n.ToString());
}
protected abstract void OnMsg(string msg);
}
class Concrete : Base
{
protected override void OnMsg(string msg)
{
Console.WriteLine("Msg: " + msg);
}
}
Concrete
取决于 method Base.Receive(int n)
,但它从不使用它。
UPD
我使用的定义:
ISP 声明不应强迫任何客户端依赖它不使用的方法。