Code Smell 63 — Feature Envy
If your method is jealous and don’t trust in delegation, you should start to do it.

Problems
- Coupling
- Low Reuse
- Low Testability
- Bad Responsibilities Assignment
- Bijection Fault
Solutions
- Move method to the appropriate class.
Sample Code
Wrong
Right
Detection
Some linters can detect a sequential pattern of collaborations with another object.
Tags
- Coupling
Conclusion
- We should assign responsibilities according to real object mappers and avoid abusing other objects protocol.
Relations
More info
We argue that design practices which take a data-driven approach fail to maximize encapsulation because they focus too quickly on the implementation of objects. We propose an alternative object-oriented design method which takes a responsibility-driven approach.
This article is part of the CodeSmell Series.