How do you refactor a fat interface to follow ISP?
Refactored Using ISP:
public interface IWorkable
void Work();
public interface IFeedable
void Eat();
public interface ISleepable
void Sleep();
public class Human : IWorkable, IFeedable, ISleepable
public void Work() { }
public void Eat() { }
public void Sleep() { }
public class Robot : IWorkable
public void Work() { }
✅ Now each class implements only the interfaces it needs — in line with ISP.
Inversion Principle (DIP)