Наследует ли наследство от класса неиспользованные методы принципа разделения сегрегации?Принцип сегрегации наследования и интерфейса
Например:
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
зависит от метода Base.Receive(int n)
, но он никогда не использует его.
UPD
Определение Я использую:
ISP утверждает, что ни один клиент не должен быть вынужден зависеть от методов его не использует.
Я не уверен, что в этом примере, что он не использует его, как бы OnMsg никогда не будет вызываться, если получает не используется? – BlackICE
В моем случае единственный способ вызвать 'OnMsg' - от' Receive'. Мне нужно наследование для ввода входящих данных ('int n') в интерфейс' Concrete', который использует 'string msg'. В реальном примере есть более сложная работа, чем просто 'ToString()' – astef
@astef: Как правильно указал Пауло, вы используете шаблон шаблона шаблона здесь :) –