All the smells in this group contribute to excessive coupling between classes or show what happens if coupling is replaced by excessive delegation.

Feature Envy

A method accesses the data of another object more than its own data.

Inappropriate Intimacy

One class uses the internal fields and methods of another class.

Message Chains

In code you see a series of calls resembling $a->b()->c()->d()

Middle Man

If a class performs only one action, delegating work to another class, why does it exist at all?

Tired of reading?

No wonder, there are 7 hours worth of the text on this website.

Try out something different. We've just launched the interactive learning course on refactoring. It has more content and much more fun than a boring text.

Learn more...