I think you are misinterpreting what the principle of separation of segregation says. In your case, you are fine and do not "force" any implementation. In fact, you apply the template template template template
If you had a hypothetical
interface ICommunicateInt { int Receive(); void Send(int n); }
to implement it, your Base class would have to implement the Send method, which it does not need. So, your ISP suggests that itβs better to have:
interface ISendInt { void Send(int n); } interface IReceiveInt { int Receive(); }
so your classes can choose one or both. Also, methods in other classes that need a class that can send Int may require
void Test(ISendInt snd) // void Test(ICommunicateInt snd) // Test would "force" snd to depend on // a method that it does not use
source share