interface IPracownik { void Pracuj(); void Jedz(); void Pij(); }
class Pracownik : IPracownik { public void Pracuj() { } public void Jedz() { } public void Pij() { } } class Robot : IPracownik { public void Pracuj() { } public void Jedz() { throw new NotImplementedException(); } public void Pij() { throw new NotImplementedException(); } }Jak widać nasz interfejs jest tłustym interfejsem, ponieważ robot nie potrzebuje jeść i pić. Aby zapobiec tłustym interfejsom stosuje się refaktoryzacje kodu i rozbicie interfejsów na kilka mniejszych. Następnie w klasie Robot zamiast dziedziczyć po tłustym interfejsie i implementować niepotrzebne metody dziedziczymy tylko po jednym interfejsie. W przypadku Pracownika klasa dziedziczy po dwóch interfejsach.
interface IPracuj { void Pracuj(); } interface ISpozywaj { void Jedz(); void Pij(); } class Pracownik : ISpozywaj, IPracuj { public void Pracuj() {} public void Jedz() {} public void Pij() {} } class Robot : IPracuj { public void Pracuj() {} }