Mid SOLID

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)

More from Design Patterns in C#

All questions for this course