未使用のメソッドを持つクラスからの継承は、インターフェイス分離の原則に違反しますか?
例えば:
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 は、クライアントが使用しない方法に依存することを強制されるべきではないと述べています。